{
 "cells": [
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# 一、高德Web服务API文档所有功能的调用\n"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "- 以下仓库中放置了封装好的函数\n",
    "- [Gitee仓库链接](https://gitee.com/yebail/gaud_web_services_api)\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 61,
   "metadata": {},
   "outputs": [],
   "source": [
    "## 导入基本模块\n",
    "import pandas as pd\n",
    "import requests\n",
    "\n",
    "## 获取密钥\n",
    "key_yang =\"41ced83bfcbbc1b40aa473f618ca42ce\""
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 地理/逆地理编码"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### 地理编码\n",
    "- 输入地点名称后可以将其转化为经纬度，输入的地点越详细，获取到的经纬度也更精确\n",
    "- 定位功能\n",
    "- 机器学习认知服务（搜索）"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 62,
   "metadata": {
    "scrolled": true
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "{'status': '1', 'info': 'OK', 'infocode': '10000', 'count': '1', 'geocodes': [{'formatted_address': '云南省昆明市五华区翠湖公园', 'country': '中国', 'province': '云南省', 'citycode': '0871', 'city': '昆明市', 'district': '五华区', 'township': [], 'neighborhood': {'name': [], 'type': []}, 'building': {'name': [], 'type': []}, 'adcode': '530102', 'street': [], 'number': [], 'location': '102.703979,25.048668', 'level': '兴趣点'}]}\n"
     ]
    },
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>formatted_address</th>\n",
       "      <th>country</th>\n",
       "      <th>province</th>\n",
       "      <th>citycode</th>\n",
       "      <th>city</th>\n",
       "      <th>district</th>\n",
       "      <th>township</th>\n",
       "      <th>adcode</th>\n",
       "      <th>street</th>\n",
       "      <th>number</th>\n",
       "      <th>location</th>\n",
       "      <th>level</th>\n",
       "      <th>neighborhood.name</th>\n",
       "      <th>neighborhood.type</th>\n",
       "      <th>building.name</th>\n",
       "      <th>building.type</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>云南省昆明市五华区翠湖公园</td>\n",
       "      <td>中国</td>\n",
       "      <td>云南省</td>\n",
       "      <td>0871</td>\n",
       "      <td>昆明市</td>\n",
       "      <td>五华区</td>\n",
       "      <td>[]</td>\n",
       "      <td>530102</td>\n",
       "      <td>[]</td>\n",
       "      <td>[]</td>\n",
       "      <td>102.703979,25.048668</td>\n",
       "      <td>兴趣点</td>\n",
       "      <td>[]</td>\n",
       "      <td>[]</td>\n",
       "      <td>[]</td>\n",
       "      <td>[]</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "  formatted_address country province citycode city district township  adcode  \\\n",
       "0     云南省昆明市五华区翠湖公园      中国      云南省     0871  昆明市      五华区       []  530102   \n",
       "\n",
       "  street number              location level neighborhood.name  \\\n",
       "0     []     []  102.703979,25.048668   兴趣点                []   \n",
       "\n",
       "  neighborhood.type building.name building.type  \n",
       "0                []            []            []  "
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "翠湖公园地理编码: 102.703979,25.048668\n"
     ]
    }
   ],
   "source": [
    "# 参考文档 https://lbs.amap.com/api/webservice/guide/api/georegeo\n",
    "def geocode(address,city)->dict:\n",
    "    \"\"\"获取地理编码\"\"\"\n",
    "    url = 'https://restapi.amap.com/v3/geocode/geo?parameters'\n",
    "    params={\n",
    "        'key': key_yang,\n",
    "        'address':address,\n",
    "        'output':'json'\n",
    "    }\n",
    "    response = requests.get(url,params=params)\n",
    "    data = response.json()\n",
    "    return data\n",
    "翠湖公园 = geocode(address='云南省翠湖公园',city='昆明市')\n",
    "print(翠湖公园)\n",
    "df_中大南方地理编码 = pd.json_normalize(翠湖公园['geocodes'])\n",
    "display(df_中大南方地理编码)\n",
    "翠湖公园地理编码 = 翠湖公园['geocodes'][0]['location']\n",
    "print(\"翠湖公园地理编码:\",翠湖公园地理编码)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### 逆地理编码\n",
    "- 可以将经纬度信息转化为具体的地点名称\n",
    "- 需要用到定位的功能\n",
    "- 需要用到及机器学习"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 63,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "{'status': '1', 'info': 'OK', 'infocode': '10000', 'regeocode': {'formatted_address': '云南省昆明市五华区华山街道翠湖昆明翠湖公园', 'addressComponent': {'country': '中国', 'province': '云南省', 'city': '昆明市', 'citycode': '0871', 'district': '五华区', 'adcode': '530102', 'township': '华山街道', 'towncode': '530102001000', 'neighborhood': {'name': [], 'type': []}, 'building': {'name': '翠湖', 'type': '地名地址信息;自然地名;河流'}, 'streetNumber': {'street': '翠湖南路', 'number': '67号', 'location': '102.703689,25.0484739', 'direction': '西南', 'distance': '36.3277'}, 'businessAreas': [{'location': '102.703108,25.04791', 'name': '翠湖', 'id': '530102'}]}, 'pois': [{'id': 'B0367065BF', 'name': '昆明翠湖公园', 'type': '风景名胜;公园广场;公园', 'tel': '0871-65318808', 'direction': '西南', 'distance': '36.3277', 'location': '102.703689,25.048474', 'address': '翠湖南路67号', 'poiweight': '0.636229', 'businessarea': '翠湖'}, {'id': 'B03670XRRM', 'name': '昆明市自来水历史博物馆', 'type': '科教文化服务;博物馆;博物馆', 'tel': '0871-63163863', 'direction': '东北', 'distance': '132.7', 'location': '102.704864,25.049552', 'address': '翠湖东路6号', 'poiweight': '0.48', 'businessarea': '翠湖'}, {'id': 'B0FFFABQJV', 'name': '翠湖·拾翠滇文化中心', 'type': '科教文化服务;科教文化场所;科教文化场所', 'tel': [], 'direction': '西', 'distance': '53.4433', 'location': '102.703460,25.048568', 'address': '文林街142号', 'poiweight': '0.264255', 'businessarea': '翠湖'}, {'id': 'B036703T3D', 'name': '翠湖宾馆', 'type': '住宿服务;宾馆酒店;五星级宾馆', 'tel': '0871-65158888', 'direction': '东', 'distance': '315.52', 'location': '102.706847,25.047528', 'address': '翠湖南路6号', 'poiweight': '0.670676', 'businessarea': '翠湖'}, {'id': 'B036708CSU', 'name': '云南陆军讲武堂历史博物馆', 'type': '科教文化服务;博物馆;博物馆', 'tel': [], 'direction': '西', 'distance': '328.292', 'location': '102.700804,25.048003', 'address': '翠湖西路22号', 'poiweight': '0.48', 'businessarea': '翠湖'}, {'id': 'B03671124V', 'name': '明昊轩乐器培训', 'type': '科教文化服务;培训机构;培训机构', 'tel': '13114282427', 'direction': '东南', 'distance': '287.717', 'location': '102.705361,25.046404', 'address': '翠湖南路40号附5号', 'poiweight': '0.140189', 'businessarea': '翠湖'}, {'id': 'B0367064KO', 'name': '武成小学(毓英校区)', 'type': '科教文化服务;学校;小学', 'tel': [], 'direction': '东南', 'distance': '339.037', 'location': '102.705375,25.045894', 'address': '黄公东街8号', 'poiweight': '0.48', 'businessarea': '翠湖'}, {'id': 'B03670XRY8', 'name': '昆明翠湖公园-莲花禅院', 'type': '风景名胜;风景名胜;寺庙道观', 'tel': [], 'direction': '西', 'distance': '49.5642', 'location': '102.703490,25.048618', 'address': '翠湖南路67号', 'poiweight': '0.359599', 'businessarea': '翠湖'}, {'id': 'B036701F5C', 'name': '五华区教职工幼儿园', 'type': '科教文化服务;学校;幼儿园', 'tel': '0871-65193617', 'direction': '东北', 'distance': '306.447', 'location': '102.706360,25.050383', 'address': '翠湖东路6号', 'poiweight': '0.24869', 'businessarea': '翠湖'}, {'id': 'B0FFFE3YS7', 'name': '翠湖南路65号宅院', 'type': '科教文化服务;博物馆;博物馆', 'tel': [], 'direction': '东南', 'distance': '230.412', 'location': '102.704921,25.04678', 'address': '翠湖南路65号', 'poiweight': '0.293329', 'businessarea': '翠湖'}, {'id': 'B036701F56', 'name': '昆明市第二幼儿园', 'type': '科教文化服务;学校;幼儿园', 'tel': '0871-65168750', 'direction': '东南', 'distance': '325.203', 'location': '102.705957,25.046357', 'address': '登华街22号', 'poiweight': '0.358994', 'businessarea': '翠湖'}, {'id': 'B036705ZQV', 'name': '五华区武成社区卫生服务站', 'type': '医疗保健服务;综合医院;卫生院', 'tel': '0871-65196035', 'direction': '东南', 'distance': '319.473', 'location': '102.705576,25.046186', 'address': '登华街22号', 'poiweight': '0.151601', 'businessarea': '翠湖'}, {'id': 'B03670XROL', 'name': '昆明翠湖公园-观鱼楼', 'type': '风景名胜;风景名胜;风景名胜', 'tel': [], 'direction': '西南', 'distance': '121.502', 'location': '102.702888,25.048202', 'address': '翠湖公园内', 'poiweight': '0.268083', 'businessarea': '翠湖'}, {'id': 'B03670XRVD', 'name': '昆明翠湖公园-金鱼岛', 'type': '风景名胜;风景名胜相关;旅游景点', 'tel': [], 'direction': '东南', 'distance': '116.793', 'location': '102.704760,25.047892', 'address': '翠湖南路67号翠湖公园内', 'poiweight': '0.268083', 'businessarea': '翠湖'}, {'id': 'B036707FDM', 'name': '翠湖', 'type': '地名地址信息;自然地名;湖泊', 'tel': [], 'direction': '西南', 'distance': '121.437', 'location': '102.703110,25.047911', 'address': '五华区', 'poiweight': '0.659519', 'businessarea': '翠湖'}, {'id': 'B036705O3V', 'name': '翠丽东苑', 'type': '商务住宅;住宅区;住宅小区', 'tel': [], 'direction': '东南', 'distance': '281.99', 'location': '102.70547,25.046522', 'address': '翠湖南路10号附18号', 'poiweight': '0.250345', 'businessarea': '翠湖'}, {'id': 'B03670XS08', 'name': '昆明翠湖公园-积翠楼', 'type': '风景名胜;风景名胜相关;旅游景点', 'tel': [], 'direction': '西北', 'distance': '142.608', 'location': '102.703240,25.049762', 'address': '翠湖公园内', 'poiweight': '0.268083', 'businessarea': '翠湖'}, {'id': 'B036711IC1', 'name': '云南省美术书法研究院', 'type': '科教文化服务;科研机构;科研机构', 'tel': '0871-65139648', 'direction': '北', 'distance': '333.902', 'location': '102.703572,25.051648', 'address': '翠湖北路25号(云南省文联办公楼3层)', 'poiweight': '0.154851', 'businessarea': '翠湖'}, {'id': 'B0367086LT', 'name': '赵公祠', 'type': '风景名胜;风景名胜;风景名胜', 'tel': [], 'direction': '东南', 'distance': '265.398', 'location': '102.705740,25.046893', 'address': '翠湖南路19号(黄公东街)', 'poiweight': '0.393073', 'businessarea': '翠湖'}, {'id': 'B036709D39', 'name': '昆湖小区', 'type': '商务住宅;住宅区;住宅小区', 'tel': [], 'direction': '南', 'distance': '290.573', 'location': '102.704704,25.046139', 'address': '黄公东街10号', 'poiweight': '0.175638', 'businessarea': '翠湖'}, {'id': 'B036711IC0', 'name': '云南文苑', 'type': '科教文化服务;科教文化场所;科教文化场所', 'tel': [], 'direction': '北', 'distance': '333.902', 'location': '102.703572,25.051648', 'address': '翠湖北路25号', 'poiweight': '0.110847', 'businessarea': '翠湖'}, {'id': 'B0FFGAUNFX', 'name': 'i2全外教少儿英语教育', 'type': '科教文化服务;培训机构;培训机构', 'tel': '18587157617', 'direction': '西北', 'distance': '341.977', 'location': '102.702592,25.051475', 'address': '青云街59号', 'poiweight': '0.159858', 'businessarea': '翠湖'}, {'id': 'B03670XRON', 'name': '昆明翠湖公园-三角花坛', 'type': '风景名胜;风景名胜相关;旅游景点', 'tel': [], 'direction': '东', 'distance': '178.356', 'location': '102.705726,25.048927', 'address': '翠湖公园内', 'poiweight': '0.268083', 'businessarea': '翠湖'}, {'id': 'B0FFIOZ57L', 'name': '昆明翠湖公园-聂耳塑像', 'type': '风景名胜;风景名胜;风景名胜', 'tel': [], 'direction': '西南', 'distance': '189.529', 'location': '102.702492,25.047624', 'address': '仓园巷与翠湖北路交叉口东南200米', 'poiweight': '0.249204', 'businessarea': '翠湖'}, {'id': 'B03670XRSQ', 'name': '昆明翠湖公园-竹林岛', 'type': '风景名胜;风景名胜;风景名胜', 'tel': [], 'direction': '东北', 'distance': '195.699', 'location': '102.705505,25.049757', 'address': '翠湖公园内', 'poiweight': '0.268083', 'businessarea': '翠湖'}, {'id': 'B0FFGIAQ6A', 'name': '人体气脉功能实修中心', 'type': '医疗保健服务;医疗保健服务场所;医疗保健服务场所', 'tel': [], 'direction': '东南', 'distance': '265.786', 'location': '102.705245,25.046571', 'address': '翠湖南路与黄公东街交叉口东100米', 'poiweight': '0.165286', 'businessarea': '翠湖'}, {'id': 'B03670XRRF', 'name': '昆明翠湖公园-海心亭', 'type': '风景名胜;风景名胜相关;旅游景点', 'tel': [], 'direction': '西北', 'distance': '200.173', 'location': '102.702287,25.049612', 'address': '翠湖公园内', 'poiweight': '0.268083', 'businessarea': '翠湖'}, {'id': 'B03670XRTQ', 'name': '昆明翠湖公园-西南岛', 'type': '风景名胜;风景名胜相关;旅游景点', 'tel': [], 'direction': '西南', 'distance': '214.338', 'location': '102.702395,25.047381', 'address': '翠湖公园内', 'poiweight': '0.268083', 'businessarea': '翠湖'}, {'id': 'B0367086LZ', 'name': '卢汉公馆', 'type': '风景名胜;风景名胜;纪念馆', 'tel': [], 'direction': '东', 'distance': '313.803', 'location': '102.707092,25.048570', 'address': '翠湖南路4号', 'poiweight': '0.478801', 'businessarea': '翠湖'}, {'id': 'B03670W6OT', 'name': '昆明糖果糕点大楼', 'type': '商务住宅;楼宇;商务写字楼', 'tel': [], 'direction': '东北', 'distance': '369.107', 'location': '102.705919,25.051484', 'address': '青云街50号', 'poiweight': '0.109262', 'businessarea': '翠湖'}], 'roads': [{'id': '0871G48F0360069390', 'name': '圆通街', 'direction': '西', 'distance': '295.32', 'location': '102.707,25.0494'}, {'id': '0871G48F03600624101', 'name': '华山西路', 'direction': '西', 'distance': '365.778', 'location': '102.707,25.0476'}], 'roadinters': [{'direction': '北', 'distance': '265.459', 'location': '102.704355,25.04630528', 'first_id': '0871G48F0360069334', 'first_name': '黄公东街', 'second_id': '0871G48F0360069338', 'second_name': '翠湖南路'}], 'aois': [{'id': 'B0367065BF', 'name': '昆明翠湖公园', 'adcode': '530102', 'location': '102.703689,25.048474', 'area': '191686.001686', 'distance': '0', 'type': '110101'}]}}\n"
     ]
    },
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>0</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>status</th>\n",
       "      <td>1</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>info</th>\n",
       "      <td>OK</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>infocode</th>\n",
       "      <td>10000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>regeocode.formatted_address</th>\n",
       "      <td>云南省昆明市五华区华山街道翠湖昆明翠湖公园</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>regeocode.addressComponent.country</th>\n",
       "      <td>中国</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>regeocode.addressComponent.province</th>\n",
       "      <td>云南省</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>regeocode.addressComponent.city</th>\n",
       "      <td>昆明市</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>regeocode.addressComponent.citycode</th>\n",
       "      <td>0871</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>regeocode.addressComponent.district</th>\n",
       "      <td>五华区</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>regeocode.addressComponent.adcode</th>\n",
       "      <td>530102</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>regeocode.addressComponent.township</th>\n",
       "      <td>华山街道</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>regeocode.addressComponent.towncode</th>\n",
       "      <td>530102001000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>regeocode.addressComponent.neighborhood.name</th>\n",
       "      <td>[]</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>regeocode.addressComponent.neighborhood.type</th>\n",
       "      <td>[]</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>regeocode.addressComponent.building.name</th>\n",
       "      <td>翠湖</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>regeocode.addressComponent.building.type</th>\n",
       "      <td>地名地址信息;自然地名;河流</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>regeocode.addressComponent.streetNumber.street</th>\n",
       "      <td>翠湖南路</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>regeocode.addressComponent.streetNumber.number</th>\n",
       "      <td>67号</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>regeocode.addressComponent.streetNumber.location</th>\n",
       "      <td>102.703689,25.0484739</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>regeocode.addressComponent.streetNumber.direction</th>\n",
       "      <td>西南</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>regeocode.addressComponent.streetNumber.distance</th>\n",
       "      <td>36.3277</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>regeocode.addressComponent.businessAreas</th>\n",
       "      <td>[{'location': '102.703108,25.04791', 'name': '...</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>regeocode.pois</th>\n",
       "      <td>[{'id': 'B0367065BF', 'name': '昆明翠湖公园', 'type'...</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>regeocode.roads</th>\n",
       "      <td>[{'id': '0871G48F0360069390', 'name': '圆通街', '...</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>regeocode.roadinters</th>\n",
       "      <td>[{'direction': '北', 'distance': '265.459', 'lo...</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>regeocode.aois</th>\n",
       "      <td>[{'id': 'B0367065BF', 'name': '昆明翠湖公园', 'adcod...</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "                                                                                                   0\n",
       "status                                                                                             1\n",
       "info                                                                                              OK\n",
       "infocode                                                                                       10000\n",
       "regeocode.formatted_address                                                    云南省昆明市五华区华山街道翠湖昆明翠湖公园\n",
       "regeocode.addressComponent.country                                                                中国\n",
       "regeocode.addressComponent.province                                                              云南省\n",
       "regeocode.addressComponent.city                                                                  昆明市\n",
       "regeocode.addressComponent.citycode                                                             0871\n",
       "regeocode.addressComponent.district                                                              五华区\n",
       "regeocode.addressComponent.adcode                                                             530102\n",
       "regeocode.addressComponent.township                                                             华山街道\n",
       "regeocode.addressComponent.towncode                                                     530102001000\n",
       "regeocode.addressComponent.neighborhood.name                                                      []\n",
       "regeocode.addressComponent.neighborhood.type                                                      []\n",
       "regeocode.addressComponent.building.name                                                          翠湖\n",
       "regeocode.addressComponent.building.type                                              地名地址信息;自然地名;河流\n",
       "regeocode.addressComponent.streetNumber.street                                                  翠湖南路\n",
       "regeocode.addressComponent.streetNumber.number                                                   67号\n",
       "regeocode.addressComponent.streetNumber.location                               102.703689,25.0484739\n",
       "regeocode.addressComponent.streetNumber.direction                                                 西南\n",
       "regeocode.addressComponent.streetNumber.distance                                             36.3277\n",
       "regeocode.addressComponent.businessAreas           [{'location': '102.703108,25.04791', 'name': '...\n",
       "regeocode.pois                                     [{'id': 'B0367065BF', 'name': '昆明翠湖公园', 'type'...\n",
       "regeocode.roads                                    [{'id': '0871G48F0360069390', 'name': '圆通街', '...\n",
       "regeocode.roadinters                               [{'direction': '北', 'distance': '265.459', 'lo...\n",
       "regeocode.aois                                     [{'id': 'B0367065BF', 'name': '昆明翠湖公园', 'adcod..."
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "# 基础逆地理编码分析\n",
    "def regeocode(location,poitype='美食|民宿|景点',radius=500,extensions=\"all\",batch=False,roadlevel=1,sig=None,homeorcorp=None)->dict:\n",
    "    \"\"\"获取逆地理编码\"\"\"\n",
    "    url = 'https://restapi.amap.com/v3/geocode/regeo?parameters'\n",
    "    params={\n",
    "        'key': key_yang,\n",
    "        'location':location,\n",
    "        'poitype':poitype,\n",
    "        'radius':radius,\n",
    "        'extensions':extensions,\n",
    "        'batch':batch,\n",
    "        'roadlevel':roadlevel,\n",
    "        'homeorcorp':homeorcorp,\n",
    "        'sig':sig,\n",
    "        'output':'json'\n",
    "    }\n",
    "    response = requests.get(url,params=params)\n",
    "    data = response.json()\n",
    "    return data\n",
    "\n",
    "翠湖公园逆地理编码_base = regeocode(翠湖公园地理编码)\n",
    "print(翠湖公园逆地理编码_base)\n",
    "df_翠湖公园逆地理编码 = pd.json_normalize(翠湖公园逆地理编码_base).T\n",
    "display(df_翠湖公园逆地理编码)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 路径规划与公交路径规划\n",
    "- 机器学习推荐算法\n",
    "- 实时定位功能\n",
    "- 路径规划算法\n",
    "- 人工智能认知服务（播报路径规划）"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### 路径规划"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 64,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "(起点)莲花禅院_location: 102.703598,25.048587 (终点)积翠楼_location: 102.703845,25.048595\n"
     ]
    },
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>instruction</th>\n",
       "      <th>orientation</th>\n",
       "      <th>road</th>\n",
       "      <th>distance</th>\n",
       "      <th>duration</th>\n",
       "      <th>polyline</th>\n",
       "      <th>action</th>\n",
       "      <th>assistant_action</th>\n",
       "      <th>walk_type</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>向南步行3米到达目的地</td>\n",
       "      <td>南</td>\n",
       "      <td>[]</td>\n",
       "      <td>3</td>\n",
       "      <td>2</td>\n",
       "      <td>102.703646,25.048594;102.703655,25.048563</td>\n",
       "      <td>[]</td>\n",
       "      <td>到达目的地</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "   instruction orientation road distance duration  \\\n",
       "0  向南步行3米到达目的地           南   []        3        2   \n",
       "\n",
       "                                    polyline action assistant_action walk_type  \n",
       "0  102.703646,25.048594;102.703655,25.048563     []            到达目的地         0  "
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/plain": [
       "0    向南步行3米到达目的地\n",
       "Name: instruction, dtype: object"
      ]
     },
     "execution_count": 64,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "#  准备base url、params、response.json（） \n",
    "def walking(origin,destination,sig=None)->dict:\n",
    "    \"\"\"路径规划\"\"\"\n",
    "    url = 'https://restapi.amap.com/v3/direction/walking?parameters'\n",
    "    params={\n",
    "        'key':key_yang,\n",
    "        'origin':origin,\n",
    "        'destination':destination,\n",
    "        'output':'json'\n",
    "    }\n",
    "    response = requests.get(url,params=params)\n",
    "    data = response.json()\n",
    "    return data\n",
    "\n",
    "# 准备起点（origin）和终点（destination）的坐标\n",
    "# 翠湖公园-莲花禅院     ———>>   昆明翠湖公园-积翠楼\n",
    "莲花禅院 = geocode('云南省昆明市五华区翠湖公园莲花禅院',city='昆明市')\n",
    "莲花禅院_location = 莲花禅院['geocodes'][0]['location']\n",
    "莲花禅院_location\n",
    "积翠楼 = geocode('云南省昆明市五华区翠湖公园积翠楼',city='昆明市')\n",
    "积翠楼_location = 积翠楼['geocodes'][0]['location']\n",
    "print(\"(起点)莲花禅院_location:\",莲花禅院_location,\"(终点)积翠楼_location:\",积翠楼_location)\n",
    "\n",
    "# 路径规划\n",
    "莲花禅院_积翠楼 = walking(莲花禅院_location,积翠楼_location)\n",
    "莲花禅院_积翠楼\n",
    "df_步行路径规划 = pd.json_normalize(莲花禅院_积翠楼[\"route\"][\"paths\"][0]['steps'])\n",
    "display(df_步行路径规划)\n",
    "df_步行路径规划[\"instruction\"]"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### 公交路径规划"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 65,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "(起点)丽影广场_location: 113.320105,23.095808 (终点)广州塔_location: 113.322504,23.107395\n",
      "{'status': '1', 'info': 'OK', 'infocode': '10000', 'count': '5', 'route': {'origin': '113.320105,23.095808', 'destination': '113.322504,23.107395', 'distance': '1398', 'taxi_cost': '10.0', 'transits': [{'cost': '2.0', 'duration': '455', 'nightflag': '0', 'walking_distance': '379', 'distance': '1621', 'missed': '0', 'emergency': {'linetype': '2', 'eventTagDesc': '提示', 'ldescription': '地铁3号线线路调整:地铁3号线在工作日非高峰时段和晚高峰、非工作日全天均开行番禺广场至机场北方向的列车，请沿线车站候车时留意站台广播发车信息', 'ssstatus': [], 'ssdescription': [], 'esstatus': [], 'esdescription': [], 'busid': '440100023033', 'busname': '地铁3号线'}, 'segments': [{'taxi': [], 'walking': {'origin': '113.319847,23.096037', 'destination': '113.320328,23.096197', 'distance': '181', 'duration': '155', 'steps': [{'instruction': '步行33米左转', 'road': [], 'distance': '33', 'duration': [], 'polyline': '113.319847,23.096037;113.319771,23.096037;113.319504,23.096024', 'action': '左转', 'assistant_action': []}, {'instruction': '步行20米左转', 'road': [], 'distance': '20', 'duration': [], 'polyline': '113.319504,23.096020;113.319511,23.095850', 'action': '左转', 'assistant_action': []}, {'instruction': '步行128米到达客村', 'road': [], 'distance': '128', 'duration': [], 'polyline': '113.319511,23.095846;113.319511,23.095812;113.320007,23.095812;113.320007,23.096193;113.320328,23.096197', 'action': [], 'assistant_action': '到达客村'}]}, 'bus': {'buslines': [{'departure_stop': {'name': '客村', 'id': '440100023033009', 'location': '113.320331,23.096197'}, 'arrival_stop': {'name': '广州塔', 'id': '440100023033010', 'location': '113.323618,23.106375'}, 'name': '地铁3号线(番禺广场--天河客运站)', 'id': '440100023033', 'type': '地铁线路', 'distance': '1242', 'duration': '131', 'polyline': '113.320331,23.096197;113.320324,23.096867;113.320339,23.097045;113.320366,23.097218;113.320414,23.097400;113.320479,23.097563;113.320564,23.097706;113.322783,23.101174;113.323147,23.101868;113.323389,23.102569;113.323551,23.103271;113.323620,23.103908;113.323618,23.105619;113.323618,23.106375', 'bustimetag': '0', 'start_time': '0600', 'end_time': '2255', 'via_num': '0', 'via_stops': []}]}, 'entrance': {'name': 'C口', 'location': '113.319511,23.095810'}, 'exit': {'name': 'A口', 'location': '113.323029,23.106901'}, 'railway': {'via_stops': [], 'alters': [], 'spaces': []}}, {'taxi': [], 'walking': {'origin': '113.323616,23.106371', 'destination': '113.322540,23.107269', 'distance': '198', 'duration': '169', 'steps': [{'instruction': '步行138米右转', 'road': [], 'distance': '138', 'duration': [], 'polyline': '113.323616,23.106371;113.323616,23.106680;113.323616,23.106901;113.323029,23.106901;113.322838,23.106897', 'action': '右转', 'assistant_action': []}, {'instruction': '沿滨江东路步行15米左转', 'road': '滨江东路', 'distance': '15', 'duration': [], 'polyline': '113.322845,23.106892;113.322868,23.107027', 'action': '左转', 'assistant_action': []}, {'instruction': '步行27米向右前方行走', 'road': [], 'distance': '27', 'duration': [], 'polyline': '113.322868,23.107027;113.322632,23.107132', 'action': '向右前方行走', 'assistant_action': []}, {'instruction': '沿艺苑路步行18米', 'road': '艺苑路', 'distance': '18', 'duration': [], 'polyline': '113.322632,23.107132;113.322540,23.107269', 'action': [], 'assistant_action': []}]}, 'bus': {'buslines': []}, 'entrance': [], 'exit': [], 'railway': {'via_stops': [], 'alters': [], 'spaces': []}}]}, {'cost': '2.0', 'duration': '1870', 'nightflag': '0', 'walking_distance': '507', 'distance': '2806', 'missed': '0', 'segments': [{'taxi': [], 'walking': {'origin': '113.319794,23.095917', 'destination': '113.320435,23.096237', 'distance': '364', 'duration': '312', 'steps': [{'instruction': '步行1米往前走', 'road': [], 'distance': '1', 'duration': [], 'polyline': '113.319794,23.095917;113.319794,23.095917', 'action': '往前走', 'assistant_action': []}, {'instruction': '步行85米往后走', 'road': [], 'distance': '85', 'duration': [], 'polyline': '113.319794,23.095917;113.319824,23.095772;113.319801,23.095768;113.319794,23.095676;113.319664,23.095676;113.319664,23.095768;113.319725,23.095768;113.319702,23.095833;113.319511,23.095812', 'action': '往后走', 'assistant_action': []}, {'instruction': '步行204米左转', 'road': [], 'distance': '204', 'duration': [], 'polyline': '113.319511,23.095808;113.320007,23.095808;113.320007,23.096193;113.320007,23.096567;113.319687,23.096581;113.319687,23.096228', 'action': '左转', 'assistant_action': []}, {'instruction': '沿新港中路步行75米到达珠影', 'road': '新港中路', 'distance': '75', 'duration': [], 'polyline': '113.319687,23.096224;113.320015,23.096237;113.320435,23.096237', 'action': [], 'assistant_action': '到达珠影'}]}, 'bus': {'buslines': [{'departure_stop': {'name': '珠影', 'id': '440100016714031', 'location': '113.320389,23.096233'}, 'arrival_stop': {'name': '广州塔码头', 'id': '440100016714025', 'location': '113.320999,23.107075'}, 'name': '468路(土华总站--海琴湾总站(下渡路))', 'id': '440100016714', 'type': '普通公交线路', 'distance': '2299', 'duration': '1436', 'polyline': '113.320389,23.096233;113.320381,23.096233;113.320007,23.096237;113.320000,23.096794;113.319984,23.097349;113.319984,23.097496;113.319992,23.098412;113.320007,23.098598;113.320045,23.098675;113.320145,23.098763;113.320389,23.098824;113.320740,23.098944;113.320824,23.098997;113.320877,23.099049;113.320892,23.099163;113.320976,23.099335;113.321037,23.099514;113.321129,23.099804;113.321259,23.100235;113.321285,23.100331;113.321281,23.100428;113.321316,23.100500;113.321312,23.100500;113.319992,23.100988;113.320099,23.101892;113.320107,23.101923;113.320168,23.101967;113.320198,23.102039;113.320190,23.102085;113.320152,23.102131;113.320137,23.102140;113.320137,23.102144;113.320141,23.102214;113.320168,23.102495;113.320198,23.102560;113.320282,23.102673;113.321381,23.102509;113.321655,23.102468;113.321846,23.102444;113.322144,23.102404;113.323669,23.102186;113.325279,23.101963;113.325279,23.102104;113.323692,23.102327;113.323395,23.104244;113.323334,23.104652;113.323303,23.104809;113.323265,23.105127;113.323219,23.105425;113.323189,23.105560;113.323181,23.105619;113.323120,23.106016;113.323059,23.106289;113.322922,23.106653;113.322861,23.106766;113.322754,23.106949;113.322624,23.107132;113.322456,23.107258;113.321709,23.107159;113.320999,23.107075', 'bustimetag': '0', 'start_time': [], 'end_time': [], 'via_num': '2', 'via_stops': [{'name': '新市头路', 'id': '440100016714023', 'location': '113.321037,23.099514'}, {'name': '广州塔西', 'id': '440100016714024', 'location': '113.323265,23.105127'}]}]}, 'entrance': [], 'exit': [], 'railway': {'via_stops': [], 'alters': [], 'spaces': []}}, {'taxi': [], 'walking': {'origin': '113.321060,23.107084', 'destination': '113.322449,23.107258', 'distance': '143', 'duration': '122', 'steps': [{'instruction': '沿滨江东路步行143米', 'road': '滨江东路', 'distance': '143', 'duration': [], 'polyline': '113.321060,23.107084;113.321709,23.107157;113.322449,23.107258', 'action': [], 'assistant_action': []}]}, 'bus': {'buslines': []}, 'entrance': [], 'exit': [], 'railway': {'via_stops': [], 'alters': [], 'spaces': []}}]}, {'cost': '2.0', 'duration': '1920', 'nightflag': '0', 'walking_distance': '1086', 'distance': '2612', 'missed': '0', 'segments': [{'taxi': [], 'walking': {'origin': '113.320099,23.096037', 'destination': '113.327438,23.097908', 'distance': '943', 'duration': '808', 'steps': [{'instruction': '步行46米', 'road': [], 'distance': '46', 'duration': [], 'polyline': '113.320099,23.096037;113.320557,23.096046', 'action': [], 'assistant_action': []}, {'instruction': '步行19米向右前方行走', 'road': [], 'distance': '19', 'duration': [], 'polyline': '113.320557,23.096046;113.320717,23.096142', 'action': '向右前方行走', 'assistant_action': []}, {'instruction': '沿新港中路步行686米左转', 'road': '新港中路', 'distance': '686', 'duration': [], 'polyline': '113.320717,23.096142;113.320747,23.096142;113.320999,23.096146;113.322327,23.096159;113.322784,23.096163;113.322975,23.096167;113.323120,23.096167;113.323914,23.096176;113.324486,23.096176;113.324936,23.096189;113.325195,23.096193;113.327385,23.096210;113.327446,23.096210', 'action': '左转', 'assistant_action': []}, {'instruction': '沿赤岗北路步行11米向右前方行走', 'road': '赤岗北路', 'distance': '11', 'duration': [], 'polyline': '113.327446,23.096210;113.327454,23.096315', 'action': '向右前方行走', 'assistant_action': []}, {'instruction': '步行15米左转', 'road': [], 'distance': '15', 'duration': [], 'polyline': '113.327454,23.096315;113.327545,23.096418', 'action': '左转', 'assistant_action': []}, {'instruction': '沿赤岗北路步行166米到达赤岗北路', 'road': '赤岗北路', 'distance': '166', 'duration': [], 'polyline': '113.327545,23.096424;113.327484,23.096489;113.327438,23.096598;113.327438,23.096949;113.327438,23.097435;113.327438,23.097513;113.327438,23.097908', 'action': [], 'assistant_action': '到达赤岗北路'}]}, 'bus': {'buslines': [{'departure_stop': {'name': '赤岗北路', 'id': '440100016433017', 'location': '113.327431,23.097891'}, 'arrival_stop': {'name': '广州塔码头站', 'id': '440100016433025', 'location': '113.321075,23.107084'}, 'name': '262路(新洲码头总站--珠江帝景苑总站)', 'id': '440100016433', 'type': '普通公交线路', 'distance': '1526', 'duration': '990', 'polyline': '113.327431,23.097891;113.327431,23.098516;113.327423,23.099379;113.327408,23.099731;113.327393,23.100252;113.327377,23.100624;113.327385,23.100620;113.327377,23.100903;113.327377,23.101950;113.327301,23.102127;113.327217,23.102144;113.326797,23.102179;113.326416,23.102171;113.325638,23.102108;113.325340,23.102104;113.325279,23.102104;113.323692,23.102327;113.323395,23.104244;113.323334,23.104652;113.323303,23.104809;113.323265,23.105108;113.323265,23.105104;113.323219,23.105425;113.323189,23.105560;113.323181,23.105619;113.323120,23.106016;113.323059,23.106289;113.322922,23.106653;113.322861,23.106766;113.322754,23.106949;113.322624,23.107132;113.322456,23.107258;113.321709,23.107159;113.321075,23.107084', 'bustimetag': '0', 'start_time': '0550', 'end_time': '2230', 'via_num': '2', 'via_stops': [{'name': '赤岗北路(艺洲路口)', 'id': '440100016433018', 'location': '113.327377,23.100624'}, {'name': '广州塔西站', 'id': '440100016433024', 'location': '113.323265,23.105108'}]}]}, 'entrance': [], 'exit': [], 'railway': {'via_stops': [], 'alters': [], 'spaces': []}}, {'taxi': [], 'walking': {'origin': '113.321060,23.107084', 'destination': '113.322449,23.107258', 'distance': '143', 'duration': '122', 'steps': [{'instruction': '沿滨江东路步行143米', 'road': '滨江东路', 'distance': '143', 'duration': [], 'polyline': '113.321060,23.107084;113.321709,23.107157;113.322449,23.107258', 'action': [], 'assistant_action': []}]}, 'bus': {'buslines': []}, 'entrance': [], 'exit': [], 'railway': {'via_stops': [], 'alters': [], 'spaces': []}}]}, {'cost': '4.0', 'duration': '2139', 'nightflag': '0', 'walking_distance': '311', 'distance': '2962', 'missed': '0', 'segments': [{'taxi': [], 'walking': {'origin': '113.320091,23.096037', 'destination': '113.320374,23.096138', 'distance': '38', 'duration': '32', 'steps': [{'instruction': '步行10米右转', 'road': [], 'distance': '10', 'duration': [], 'polyline': '113.320091,23.096037;113.320091,23.096138', 'action': '右转', 'assistant_action': []}, {'instruction': '沿新港中路步行28米到达珠影', 'road': '新港中路', 'distance': '28', 'duration': [], 'polyline': '113.320091,23.096138;113.320374,23.096138', 'action': [], 'assistant_action': '到达珠影'}]}, 'bus': {'buslines': [{'departure_stop': {'name': '珠影', 'id': '440100016385028', 'location': '113.320419,23.096138'}, 'arrival_stop': {'name': '赤岗路口', 'id': '440100016385011', 'location': '113.329597,23.096233'}, 'name': '239路(南洲北路总站--华景新城总站(翰景路))', 'id': '440100016385', 'type': '普通公交线路', 'distance': '850', 'duration': '798', 'polyline': '113.320419,23.096138;113.320755,23.096142;113.322327,23.096155;113.322784,23.096167;113.322968,23.096167;113.323906,23.096176;113.324478,23.096176;113.324944,23.096189;113.325188,23.096193;113.327385,23.096210;113.327438,23.096210;113.328888,23.096233;113.329597,23.096233', 'bustimetag': '0', 'start_time': '0600', 'end_time': '2200', 'via_num': '0', 'via_stops': []}, {'departure_stop': {'name': '珠影', 'id': '440100010319018', 'location': '113.320374,23.096138'}, 'arrival_stop': {'name': '赤岗路口', 'id': '440100010319003', 'location': '113.328468,23.096224'}, 'name': '264A路(珠影--临时总站)', 'id': '440100010319', 'type': '普通公交线路', 'distance': '691', 'duration': '784', 'polyline': '113.320374,23.096138;113.320755,23.096142;113.322327,23.096155;113.322784,23.096167;113.322968,23.096167;113.323906,23.096176;113.324478,23.096176;113.324944,23.096189;113.325188,23.096193;113.327385,23.096210;113.327438,23.096210;113.328468,23.096224', 'bustimetag': '0', 'start_time': '0600', 'end_time': '2200', 'via_num': '0', 'via_stops': []}, {'departure_stop': {'name': '珠影', 'id': '440100017419036', 'location': '113.320396,23.096138'}, 'arrival_stop': {'name': '赤岗路口', 'id': '440100017419012', 'location': '113.329514,23.096233'}, 'name': '大学城专线3路(广东药学院总站--大学城中部枢纽总站)', 'id': '440100017419', 'type': '普通公交线路', 'distance': '766', 'duration': '1108', 'polyline': '113.320396,23.096138;113.320389,23.096138;113.320755,23.096142;113.322327,23.096155;113.322784,23.096167;113.322968,23.096167;113.323906,23.096176;113.324478,23.096176;113.324944,23.096189;113.325188,23.096193;113.327385,23.096210;113.327438,23.096210;113.328888,23.096233;113.329514,23.096233', 'bustimetag': '0', 'start_time': [], 'end_time': [], 'via_num': '0', 'via_stops': []}, {'departure_stop': {'name': '珠影', 'id': '440100016369038', 'location': '113.320381,23.096138'}, 'arrival_stop': {'name': '赤岗路口', 'id': '440100016369024', 'location': '113.329590,23.096233'}, 'name': '229路(罗冲围总站(松南路)--琶洲石基村总站)', 'id': '440100016369', 'type': '普通公交线路', 'distance': '815', 'duration': '804', 'polyline': '113.320381,23.096138;113.320374,23.096138;113.320755,23.096142;113.322327,23.096155;113.322784,23.096167;113.322968,23.096167;113.323906,23.096176;113.324478,23.096176;113.324944,23.096189;113.325188,23.096193;113.327385,23.096210;113.327438,23.096210;113.328888,23.096233;113.329590,23.096233', 'bustimetag': '0', 'start_time': '0600', 'end_time': '2200', 'via_num': '0', 'via_stops': []}, {'departure_stop': {'name': '珠影', 'id': '440100016325032', 'location': '113.320435,23.096138'}, 'arrival_stop': {'name': '赤岗路口', 'id': '440100016325021', 'location': '113.328484,23.096224'}, 'name': '206路(滘口客运站总站--新滘东路总站)', 'id': '440100016325', 'type': '普通公交线路', 'distance': '665', 'duration': '784', 'polyline': '113.320435,23.096138;113.320755,23.096142;113.322327,23.096155;113.322784,23.096167;113.322968,23.096167;113.323906,23.096176;113.324478,23.096176;113.324944,23.096189;113.325188,23.096193;113.327385,23.096210;113.327438,23.096210;113.328484,23.096224', 'bustimetag': '0', 'start_time': '0600', 'end_time': '2230', 'via_num': '0', 'via_stops': []}, {'departure_stop': {'name': '珠影', 'id': '440100017256031', 'location': '113.321548,23.096151'}, 'arrival_stop': {'name': '赤岗路口', 'id': '440100017256026', 'location': '113.328354,23.096224'}, 'name': '93路(景泰坑总站--赤岗总站)', 'id': '440100017256', 'type': '普通公交线路', 'distance': '579', 'duration': '746', 'polyline': '113.321548,23.096151;113.322327,23.096155;113.322784,23.096167;113.322968,23.096167;113.323906,23.096176;113.324478,23.096176;113.324944,23.096189;113.325188,23.096193;113.327385,23.096210;113.327438,23.096210;113.328354,23.096224', 'bustimetag': '0', 'start_time': '0620', 'end_time': '2200', 'via_num': '0', 'via_stops': []}, {'departure_stop': {'name': '珠影', 'id': '440100016713032', 'location': '113.320374,23.096138'}, 'arrival_stop': {'name': '赤岗路口', 'id': '440100016713012', 'location': '113.328438,23.096224'}, 'name': '468路(海琴湾总站(下渡路)--土华总站)', 'id': '440100016713', 'type': '普通公交线路', 'distance': '706', 'duration': '1081', 'polyline': '113.320374,23.096138;113.320755,23.096142;113.322327,23.096155;113.322784,23.096167;113.322968,23.096167;113.323906,23.096176;113.324478,23.096176;113.324944,23.096189;113.325188,23.096193;113.327385,23.096210;113.327438,23.096210;113.328438,23.096224', 'bustimetag': '0', 'start_time': [], 'end_time': [], 'via_num': '0', 'via_stops': []}, {'departure_stop': {'name': '珠影', 'id': '440100016590019', 'location': '113.320427,23.096138'}, 'arrival_stop': {'name': '赤岗路口', 'id': '440100016590010', 'location': '113.328499,23.096224'}, 'name': '37路(东山口总站--赤沙总站)', 'id': '440100016590', 'type': '普通公交线路', 'distance': '722', 'duration': '778', 'polyline': '113.320427,23.096138;113.320755,23.096142;113.322327,23.096155;113.322784,23.096167;113.322968,23.096167;113.323906,23.096176;113.324478,23.096176;113.324944,23.096189;113.325188,23.096193;113.327385,23.096210;113.327438,23.096210;113.328499,23.096224', 'bustimetag': '0', 'start_time': '0615', 'end_time': '2230', 'via_num': '0', 'via_stops': []}, {'departure_stop': {'name': '珠影', 'id': '440100016227037', 'location': '113.321548,23.096151'}, 'arrival_stop': {'name': '赤岗路口', 'id': '440100016227038', 'location': '113.328468,23.096224'}, 'name': '131A路(赤岗总站--赤岗总站)', 'id': '440100016227', 'type': '普通公交线路', 'distance': '603', 'duration': '746', 'polyline': '113.321548,23.096151;113.322327,23.096155;113.322784,23.096167;113.322968,23.096167;113.323906,23.096176;113.324478,23.096176;113.324944,23.096189;113.325188,23.096193;113.327385,23.096210;113.327438,23.096210;113.328468,23.096224', 'bustimetag': '0', 'start_time': [], 'end_time': [], 'via_num': '0', 'via_stops': []}, {'departure_stop': {'name': '珠影', 'id': '440100016447038', 'location': '113.320465,23.096138'}, 'arrival_stop': {'name': '赤岗路口', 'id': '440100016447023', 'location': '113.328491,23.096224'}, 'name': '270路(泮塘总站--土华总站)', 'id': '440100016447', 'type': '普通公交线路', 'distance': '676', 'duration': '781', 'polyline': '113.320465,23.096138;113.320755,23.096142;113.322327,23.096155;113.322784,23.096167;113.322968,23.096167;113.323906,23.096176;113.324478,23.096176;113.324944,23.096189;113.325188,23.096193;113.327385,23.096210;113.327438,23.096210;113.328491,23.096224', 'bustimetag': '0', 'start_time': '0600', 'end_time': '2245', 'via_num': '0', 'via_stops': []}, {'departure_stop': {'name': '珠影', 'id': '440100016228039', 'location': '113.321556,23.096151'}, 'arrival_stop': {'name': '赤岗路口', 'id': '440100016228040', 'location': '113.328484,23.096224'}, 'name': '131B路(赤岗总站--赤岗总站)', 'id': '440100016228', 'type': '普通公交线路', 'distance': '602', 'duration': '746', 'polyline': '113.321556,23.096151;113.322327,23.096155;113.322784,23.096167;113.322968,23.096167;113.323906,23.096176;113.324478,23.096176;113.324944,23.096189;113.325188,23.096193;113.327385,23.096210;113.327438,23.096210;113.328484,23.096224', 'bustimetag': '0', 'start_time': [], 'end_time': [], 'via_num': '0', 'via_stops': []}, {'departure_stop': {'name': '珠影', 'id': '440100016413033', 'location': '113.320381,23.096138'}, 'arrival_stop': {'name': '赤岗路口', 'id': '440100016413015', 'location': '113.328339,23.096224'}, 'name': '252路(天河客运站总站--外环西路总站)', 'id': '440100016413', 'type': '普通公交线路', 'distance': '699', 'duration': '778', 'polyline': '113.320381,23.096138;113.320389,23.096138;113.320381,23.096138;113.320755,23.096142;113.322327,23.096155;113.322784,23.096167;113.322968,23.096167;113.323906,23.096176;113.324478,23.096176;113.324944,23.096189;113.325188,23.096193;113.327385,23.096210;113.327438,23.096210;113.328339,23.096224', 'bustimetag': '0', 'start_time': [], 'end_time': [], 'via_num': '0', 'via_stops': []}, {'departure_stop': {'name': '珠影', 'id': '440100016246027', 'location': '113.320374,23.096138'}, 'arrival_stop': {'name': '赤岗路口', 'id': '440100016246016', 'location': '113.328468,23.096224'}, 'name': '14路(广卫路总站--赤沙总站)', 'id': '440100016246', 'type': '普通公交线路', 'distance': '704', 'duration': '782', 'polyline': '113.320374,23.096138;113.320755,23.096142;113.322327,23.096155;113.322784,23.096167;113.322968,23.096167;113.323906,23.096176;113.324478,23.096176;113.324944,23.096189;113.325188,23.096193;113.327385,23.096210;113.327438,23.096210;113.328468,23.096224', 'bustimetag': '0', 'start_time': '0540', 'end_time': '2300', 'via_num': '0', 'via_stops': []}, {'departure_stop': {'name': '珠影', 'id': '440100016285031', 'location': '113.321571,23.096151'}, 'arrival_stop': {'name': '赤岗路口', 'id': '440100016285032', 'location': '113.328362,23.096228'}, 'name': '189路(瑶台总站--石榴岗总站)', 'id': '440100016285', 'type': '普通公交线路', 'distance': '597', 'duration': '743', 'polyline': '113.321571,23.096151;113.321579,23.096149;113.322327,23.096159;113.322777,23.096167;113.322968,23.096167;113.323631,23.096180;113.323906,23.096176;113.324478,23.096180;113.325188,23.096189;113.327049,23.096207;113.327377,23.096207;113.327446,23.096216;113.327950,23.096220;113.328262,23.096228;113.328362,23.096228', 'bustimetag': '0', 'start_time': '0615', 'end_time': '2230', 'via_num': '0', 'via_stops': []}]}, 'entrance': [], 'exit': [], 'railway': {'via_stops': [], 'alters': [], 'spaces': []}}, {'taxi': [], 'walking': {'origin': '113.329590,23.096233', 'destination': '113.328796,23.096336', 'distance': '130', 'duration': '111', 'steps': [{'instruction': '沿新港中路步行19米左转', 'road': '新港中路', 'distance': '19', 'duration': [], 'polyline': '113.329590,23.096233;113.329781,23.096233', 'action': '左转', 'assistant_action': []}, {'instruction': '沿赤岗东路步行12米左转', 'road': '赤岗东路', 'distance': '12', 'duration': [], 'polyline': '113.329781,23.096233;113.329781,23.096336', 'action': '左转', 'assistant_action': []}, {'instruction': '沿新港中路步行99米到达赤岗路口', 'road': '新港中路', 'distance': '99', 'duration': [], 'polyline': '113.329781,23.096336;113.329407,23.096336;113.328918,23.096336;113.328796,23.096336', 'action': [], 'assistant_action': '到达赤岗路口'}]}, 'bus': {'buslines': [{'departure_stop': {'name': '赤岗路口', 'id': '440100016433016', 'location': '113.328796,23.096333'}, 'arrival_stop': {'name': '广州塔码头站', 'id': '440100016433025', 'location': '113.321075,23.107084'}, 'name': '262路(新洲码头总站--珠江帝景苑总站)', 'id': '440100016433', 'type': '普通公交线路', 'distance': '1801', 'duration': '1075', 'polyline': '113.328796,23.096333;113.328789,23.096333;113.328308,23.096329;113.328285,23.096333;113.328178,23.096329;113.327957,23.096329;113.327858,23.096367;113.327637,23.096371;113.327568,23.096411;113.327492,23.096466;113.327446,23.096558;113.327431,23.096622;113.327431,23.096949;113.327431,23.097435;113.327431,23.097513;113.327431,23.097891;113.327431,23.098516;113.327423,23.099379;113.327408,23.099731;113.327393,23.100252;113.327377,23.100624;113.327385,23.100620;113.327377,23.100903;113.327377,23.101950;113.327301,23.102127;113.327217,23.102144;113.326797,23.102179;113.326416,23.102171;113.325638,23.102108;113.325340,23.102104;113.325279,23.102104;113.323692,23.102327;113.323395,23.104244;113.323334,23.104652;113.323303,23.104809;113.323265,23.105108;113.323265,23.105104;113.323219,23.105425;113.323189,23.105560;113.323181,23.105619;113.323120,23.106016;113.323059,23.106289;113.322922,23.106653;113.322861,23.106766;113.322754,23.106949;113.322624,23.107132;113.322456,23.107258;113.321709,23.107159;113.321075,23.107084', 'bustimetag': '0', 'start_time': '0550', 'end_time': '2230', 'via_num': '3', 'via_stops': [{'name': '赤岗北路', 'id': '440100016433017', 'location': '113.327431,23.097891'}, {'name': '赤岗北路(艺洲路口)', 'id': '440100016433018', 'location': '113.327377,23.100624'}, {'name': '广州塔西站', 'id': '440100016433024', 'location': '113.323265,23.105108'}]}]}, 'entrance': [], 'exit': [], 'railway': {'via_stops': [], 'alters': [], 'spaces': []}}, {'taxi': [], 'walking': {'origin': '113.321060,23.107084', 'destination': '113.322449,23.107258', 'distance': '143', 'duration': '122', 'steps': [{'instruction': '沿滨江东路步行143米', 'road': '滨江东路', 'distance': '143', 'duration': [], 'polyline': '113.321060,23.107084;113.321709,23.107157;113.322449,23.107258', 'action': [], 'assistant_action': []}]}, 'bus': {'buslines': []}, 'entrance': [], 'exit': [], 'railway': {'via_stops': [], 'alters': [], 'spaces': []}}]}, {'cost': '4.0', 'duration': '2120', 'nightflag': '0', 'walking_distance': '311', 'distance': '2936', 'missed': '0', 'segments': [{'taxi': [], 'walking': {'origin': '113.320091,23.096037', 'destination': '113.320374,23.096138', 'distance': '38', 'duration': '32', 'steps': [{'instruction': '步行10米右转', 'road': [], 'distance': '10', 'duration': [], 'polyline': '113.320091,23.096037;113.320091,23.096138', 'action': '右转', 'assistant_action': []}, {'instruction': '沿新港中路步行28米到达珠影', 'road': '新港中路', 'distance': '28', 'duration': [], 'polyline': '113.320091,23.096138;113.320374,23.096138', 'action': [], 'assistant_action': '到达珠影'}]}, 'bus': {'buslines': [{'departure_stop': {'name': '珠影', 'id': '440100017368029', 'location': '113.320442,23.096138'}, 'arrival_stop': {'name': '赤岗路口', 'id': '440100017368039', 'location': '113.329597,23.096233'}, 'name': 'B7路(海珠客运站总站--东圃客运站总站)', 'id': '440100017368', 'type': [], 'distance': '824', 'duration': '779', 'polyline': '113.320442,23.096138;113.320435,23.096138;113.320755,23.096142;113.322327,23.096155;113.322784,23.096167;113.322968,23.096167;113.323906,23.096176;113.324478,23.096176;113.324944,23.096189;113.325188,23.096193;113.327385,23.096210;113.327438,23.096210;113.328888,23.096233;113.329597,23.096233', 'bustimetag': '0', 'start_time': [], 'end_time': [], 'via_num': '0', 'via_stops': []}, {'departure_stop': {'name': '珠影', 'id': '440100017370024', 'location': '113.320374,23.096138'}, 'arrival_stop': {'name': '赤岗路口', 'id': '440100017370009', 'location': '113.329582,23.096233'}, 'name': 'B7路快线(海珠客运站总站--东圃客运站总站)', 'id': '440100017370', 'type': [], 'distance': '846', 'duration': '780', 'polyline': '113.320374,23.096138;113.320755,23.096142;113.322327,23.096155;113.322784,23.096167;113.322968,23.096167;113.323906,23.096176;113.324478,23.096176;113.324944,23.096189;113.325188,23.096193;113.327385,23.096210;113.327438,23.096210;113.328888,23.096233;113.329582,23.096233', 'bustimetag': '0', 'start_time': [], 'end_time': [], 'via_num': '0', 'via_stops': []}]}, 'entrance': [], 'exit': [], 'railway': {'via_stops': [], 'alters': [], 'spaces': []}}, {'taxi': [], 'walking': {'origin': '113.329590,23.096233', 'destination': '113.328796,23.096336', 'distance': '130', 'duration': '111', 'steps': [{'instruction': '沿新港中路步行19米左转', 'road': '新港中路', 'distance': '19', 'duration': [], 'polyline': '113.329590,23.096233;113.329781,23.096233', 'action': '左转', 'assistant_action': []}, {'instruction': '沿赤岗东路步行12米左转', 'road': '赤岗东路', 'distance': '12', 'duration': [], 'polyline': '113.329781,23.096233;113.329781,23.096336', 'action': '左转', 'assistant_action': []}, {'instruction': '沿新港中路步行99米到达赤岗路口', 'road': '新港中路', 'distance': '99', 'duration': [], 'polyline': '113.329781,23.096336;113.329407,23.096336;113.328918,23.096336;113.328796,23.096336', 'action': [], 'assistant_action': '到达赤岗路口'}]}, 'bus': {'buslines': [{'departure_stop': {'name': '赤岗路口', 'id': '440100016433016', 'location': '113.328796,23.096333'}, 'arrival_stop': {'name': '广州塔码头站', 'id': '440100016433025', 'location': '113.321075,23.107084'}, 'name': '262路(新洲码头总站--珠江帝景苑总站)', 'id': '440100016433', 'type': '普通公交线路', 'distance': '1801', 'duration': '1075', 'polyline': '113.328796,23.096333;113.328789,23.096333;113.328308,23.096329;113.328285,23.096333;113.328178,23.096329;113.327957,23.096329;113.327858,23.096367;113.327637,23.096371;113.327568,23.096411;113.327492,23.096466;113.327446,23.096558;113.327431,23.096622;113.327431,23.096949;113.327431,23.097435;113.327431,23.097513;113.327431,23.097891;113.327431,23.098516;113.327423,23.099379;113.327408,23.099731;113.327393,23.100252;113.327377,23.100624;113.327385,23.100620;113.327377,23.100903;113.327377,23.101950;113.327301,23.102127;113.327217,23.102144;113.326797,23.102179;113.326416,23.102171;113.325638,23.102108;113.325340,23.102104;113.325279,23.102104;113.323692,23.102327;113.323395,23.104244;113.323334,23.104652;113.323303,23.104809;113.323265,23.105108;113.323265,23.105104;113.323219,23.105425;113.323189,23.105560;113.323181,23.105619;113.323120,23.106016;113.323059,23.106289;113.322922,23.106653;113.322861,23.106766;113.322754,23.106949;113.322624,23.107132;113.322456,23.107258;113.321709,23.107159;113.321075,23.107084', 'bustimetag': '0', 'start_time': '0550', 'end_time': '2230', 'via_num': '3', 'via_stops': [{'name': '赤岗北路', 'id': '440100016433017', 'location': '113.327431,23.097891'}, {'name': '赤岗北路(艺洲路口)', 'id': '440100016433018', 'location': '113.327377,23.100624'}, {'name': '广州塔西站', 'id': '440100016433024', 'location': '113.323265,23.105108'}]}]}, 'entrance': [], 'exit': [], 'railway': {'via_stops': [], 'alters': [], 'spaces': []}}, {'taxi': [], 'walking': {'origin': '113.321060,23.107084', 'destination': '113.322449,23.107258', 'distance': '143', 'duration': '122', 'steps': [{'instruction': '沿滨江东路步行143米', 'road': '滨江东路', 'distance': '143', 'duration': [], 'polyline': '113.321060,23.107084;113.321709,23.107157;113.322449,23.107258', 'action': [], 'assistant_action': []}]}, 'bus': {'buslines': []}, 'entrance': [], 'exit': [], 'railway': {'via_stops': [], 'alters': [], 'spaces': []}}]}]}}\n"
     ]
    },
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>name</th>\n",
       "      <th>id</th>\n",
       "      <th>type</th>\n",
       "      <th>distance</th>\n",
       "      <th>duration</th>\n",
       "      <th>polyline</th>\n",
       "      <th>bustimetag</th>\n",
       "      <th>start_time</th>\n",
       "      <th>end_time</th>\n",
       "      <th>via_num</th>\n",
       "      <th>via_stops</th>\n",
       "      <th>departure_stop.name</th>\n",
       "      <th>departure_stop.id</th>\n",
       "      <th>departure_stop.location</th>\n",
       "      <th>arrival_stop.name</th>\n",
       "      <th>arrival_stop.id</th>\n",
       "      <th>arrival_stop.location</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>地铁3号线(番禺广场--天河客运站)</td>\n",
       "      <td>440100023033</td>\n",
       "      <td>地铁线路</td>\n",
       "      <td>1242</td>\n",
       "      <td>131</td>\n",
       "      <td>113.320331,23.096197;113.320324,23.096867;113....</td>\n",
       "      <td>0</td>\n",
       "      <td>0600</td>\n",
       "      <td>2255</td>\n",
       "      <td>0</td>\n",
       "      <td>[]</td>\n",
       "      <td>客村</td>\n",
       "      <td>440100023033009</td>\n",
       "      <td>113.320331,23.096197</td>\n",
       "      <td>广州塔</td>\n",
       "      <td>440100023033010</td>\n",
       "      <td>113.323618,23.106375</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "                 name            id  type distance duration  \\\n",
       "0  地铁3号线(番禺广场--天河客运站)  440100023033  地铁线路     1242      131   \n",
       "\n",
       "                                            polyline bustimetag start_time  \\\n",
       "0  113.320331,23.096197;113.320324,23.096867;113....          0       0600   \n",
       "\n",
       "  end_time via_num via_stops departure_stop.name departure_stop.id  \\\n",
       "0     2255       0        []                  客村   440100023033009   \n",
       "\n",
       "  departure_stop.location arrival_stop.name  arrival_stop.id  \\\n",
       "0    113.320331,23.096197               广州塔  440100023033010   \n",
       "\n",
       "  arrival_stop.location  \n",
       "0  113.323618,23.106375  "
      ]
     },
     "execution_count": 65,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "def integrated(origin,destination,city,cityd=None,extensions='base',strategy=None,nightflag=0,date=None,time=None,sig=None)->dict:\n",
    "    \"\"\"公交路径规划\"\"\"\n",
    "    url = 'https://restapi.amap.com/v3/direction/transit/integrated?parameters'\n",
    "    params={\n",
    "        'key':key_yang,\n",
    "        'origin':origin,\n",
    "        'destination':destination,\n",
    "        'city':city,\n",
    "        'cityd':cityd,\n",
    "        'extensions':extensions,\n",
    "        'strategy':strategy,\n",
    "        'nightflag':nightflag,\n",
    "        'date':date,\n",
    "        'output':'json'\n",
    "    }\n",
    "    response = requests.get(url,params=params)\n",
    "    data = response.json()\n",
    "    return data\n",
    "\n",
    "# C-2 准备walking 参数\n",
    "丽影广场 = geocode('广东省广州市海珠区丽影广场',city=\"广州\")\n",
    "丽影广场_location = 丽影广场['geocodes'][0]['location']\n",
    "广州塔 = geocode('广州市海珠区广州塔',city=\"广州\")\n",
    "广州塔_location = 广州塔['geocodes'][0]['location']\n",
    "print(\"(起点)丽影广场_location:\",丽影广场_location,\"(终点)广州塔_location:\",广州塔_location)\n",
    "\n",
    "# C-3 公交路径规划\n",
    "丽影广场_广州塔 = integrated(丽影广场_location,广州塔_location,city=\"广州\",extensions='all')\n",
    "print(丽影广场_广州塔)\n",
    "df_bus = pd.json_normalize(丽影广场_广州塔)\n",
    "df_bus_基本信息 = pd.json_normalize(丽影广场_广州塔[\"route\"]['transits'][0]['segments'][0]['bus'][\"buslines\"])\n",
    "df_bus_基本信息"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 行政区域查询\n",
    "- 需要用到定位功能\n",
    "- 需要用到机器学习推荐算法\n",
    "- 人工智能认知服务（搜索）"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 67,
   "metadata": {
    "scrolled": true
   },
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>citycode</th>\n",
       "      <th>adcode</th>\n",
       "      <th>name</th>\n",
       "      <th>center</th>\n",
       "      <th>level</th>\n",
       "      <th>districts</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>0591</td>\n",
       "      <td>350100</td>\n",
       "      <td>福州市</td>\n",
       "      <td>119.306239,26.075302</td>\n",
       "      <td>city</td>\n",
       "      <td>[{'citycode': '0591', 'adcode': '350121', 'nam...</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>0593</td>\n",
       "      <td>350900</td>\n",
       "      <td>宁德市</td>\n",
       "      <td>119.527082,26.65924</td>\n",
       "      <td>city</td>\n",
       "      <td>[{'citycode': '0593', 'adcode': '350924', 'nam...</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>0597</td>\n",
       "      <td>350800</td>\n",
       "      <td>龙岩市</td>\n",
       "      <td>117.02978,25.091603</td>\n",
       "      <td>city</td>\n",
       "      <td>[{'citycode': '0597', 'adcode': '350881', 'nam...</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>0599</td>\n",
       "      <td>350700</td>\n",
       "      <td>南平市</td>\n",
       "      <td>118.178459,26.635627</td>\n",
       "      <td>city</td>\n",
       "      <td>[{'citycode': '0599', 'adcode': '350723', 'nam...</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>0592</td>\n",
       "      <td>350200</td>\n",
       "      <td>厦门市</td>\n",
       "      <td>118.11022,24.490474</td>\n",
       "      <td>city</td>\n",
       "      <td>[{'citycode': '0592', 'adcode': '350203', 'nam...</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>5</th>\n",
       "      <td>0596</td>\n",
       "      <td>350600</td>\n",
       "      <td>漳州市</td>\n",
       "      <td>117.661801,24.510897</td>\n",
       "      <td>city</td>\n",
       "      <td>[{'citycode': '0596', 'adcode': '350629', 'nam...</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>6</th>\n",
       "      <td>0594</td>\n",
       "      <td>350300</td>\n",
       "      <td>莆田市</td>\n",
       "      <td>119.007558,25.431011</td>\n",
       "      <td>city</td>\n",
       "      <td>[{'citycode': '0594', 'adcode': '350302', 'nam...</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>7</th>\n",
       "      <td>0595</td>\n",
       "      <td>350500</td>\n",
       "      <td>泉州市</td>\n",
       "      <td>118.589421,24.908853</td>\n",
       "      <td>city</td>\n",
       "      <td>[{'citycode': '0595', 'adcode': '350526', 'nam...</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>8</th>\n",
       "      <td>0598</td>\n",
       "      <td>350400</td>\n",
       "      <td>三明市</td>\n",
       "      <td>117.635001,26.265444</td>\n",
       "      <td>city</td>\n",
       "      <td>[{'citycode': '0598', 'adcode': '350402', 'nam...</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "  citycode  adcode name                center level  \\\n",
       "0     0591  350100  福州市  119.306239,26.075302  city   \n",
       "1     0593  350900  宁德市   119.527082,26.65924  city   \n",
       "2     0597  350800  龙岩市   117.02978,25.091603  city   \n",
       "3     0599  350700  南平市  118.178459,26.635627  city   \n",
       "4     0592  350200  厦门市   118.11022,24.490474  city   \n",
       "5     0596  350600  漳州市  117.661801,24.510897  city   \n",
       "6     0594  350300  莆田市  119.007558,25.431011  city   \n",
       "7     0595  350500  泉州市  118.589421,24.908853  city   \n",
       "8     0598  350400  三明市  117.635001,26.265444  city   \n",
       "\n",
       "                                           districts  \n",
       "0  [{'citycode': '0591', 'adcode': '350121', 'nam...  \n",
       "1  [{'citycode': '0593', 'adcode': '350924', 'nam...  \n",
       "2  [{'citycode': '0597', 'adcode': '350881', 'nam...  \n",
       "3  [{'citycode': '0599', 'adcode': '350723', 'nam...  \n",
       "4  [{'citycode': '0592', 'adcode': '350203', 'nam...  \n",
       "5  [{'citycode': '0596', 'adcode': '350629', 'nam...  \n",
       "6  [{'citycode': '0594', 'adcode': '350302', 'nam...  \n",
       "7  [{'citycode': '0595', 'adcode': '350526', 'nam...  \n",
       "8  [{'citycode': '0598', 'adcode': '350402', 'nam...  "
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>citycode</th>\n",
       "      <th>adcode</th>\n",
       "      <th>name</th>\n",
       "      <th>center</th>\n",
       "      <th>level</th>\n",
       "      <th>districts</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>0593</td>\n",
       "      <td>350924</td>\n",
       "      <td>寿宁县</td>\n",
       "      <td>119.506733,27.457798</td>\n",
       "      <td>district</td>\n",
       "      <td>[]</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>0593</td>\n",
       "      <td>350981</td>\n",
       "      <td>福安市</td>\n",
       "      <td>119.650798,27.084246</td>\n",
       "      <td>district</td>\n",
       "      <td>[]</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>0593</td>\n",
       "      <td>350921</td>\n",
       "      <td>霞浦县</td>\n",
       "      <td>120.005214,26.882068</td>\n",
       "      <td>district</td>\n",
       "      <td>[]</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>0593</td>\n",
       "      <td>350902</td>\n",
       "      <td>蕉城区</td>\n",
       "      <td>119.527225,26.659253</td>\n",
       "      <td>district</td>\n",
       "      <td>[]</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>0593</td>\n",
       "      <td>350982</td>\n",
       "      <td>福鼎市</td>\n",
       "      <td>120.219761,27.318884</td>\n",
       "      <td>district</td>\n",
       "      <td>[]</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>5</th>\n",
       "      <td>0593</td>\n",
       "      <td>350926</td>\n",
       "      <td>柘荣县</td>\n",
       "      <td>119.898226,27.236163</td>\n",
       "      <td>district</td>\n",
       "      <td>[]</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>6</th>\n",
       "      <td>0593</td>\n",
       "      <td>350922</td>\n",
       "      <td>古田县</td>\n",
       "      <td>118.743156,26.577491</td>\n",
       "      <td>district</td>\n",
       "      <td>[]</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>7</th>\n",
       "      <td>0593</td>\n",
       "      <td>350925</td>\n",
       "      <td>周宁县</td>\n",
       "      <td>119.338239,27.103106</td>\n",
       "      <td>district</td>\n",
       "      <td>[]</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>8</th>\n",
       "      <td>0593</td>\n",
       "      <td>350923</td>\n",
       "      <td>屏南县</td>\n",
       "      <td>118.987544,26.910826</td>\n",
       "      <td>district</td>\n",
       "      <td>[]</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "  citycode  adcode name                center     level districts\n",
       "0     0593  350924  寿宁县  119.506733,27.457798  district        []\n",
       "1     0593  350981  福安市  119.650798,27.084246  district        []\n",
       "2     0593  350921  霞浦县  120.005214,26.882068  district        []\n",
       "3     0593  350902  蕉城区  119.527225,26.659253  district        []\n",
       "4     0593  350982  福鼎市  120.219761,27.318884  district        []\n",
       "5     0593  350926  柘荣县  119.898226,27.236163  district        []\n",
       "6     0593  350922  古田县  118.743156,26.577491  district        []\n",
       "7     0593  350925  周宁县  119.338239,27.103106  district        []\n",
       "8     0593  350923  屏南县  118.987544,26.910826  district        []"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "def district(keywords,subdistrict=None,page=None,offset=None,extensions='base',filter=None,)->dict:\n",
    "    \"\"\"行政区域查询\"\"\"\n",
    "    url = 'https://restapi.amap.com/v3/config/district?parameters'\n",
    "    params={\n",
    "        'key':key_yang,\n",
    "        'keywords':keywords,\n",
    "        'subdistrict':subdistrict,\n",
    "        'page':page,\n",
    "        'offset':offset,\n",
    "        'extensions':extensions,\n",
    "        'filter':filter,\n",
    "        'output':'json'\n",
    "    }\n",
    "    response = requests.get(url,params=params)\n",
    "    data = response.json()\n",
    "    return data\n",
    "行政区域 = district(keywords='福建',extensions='all',subdistrict=2)\n",
    "\n",
    "df_行政区域_1级 = pd.json_normalize(行政区域[\"districts\"][0]['districts'])\n",
    "df_行政区域_1级\n",
    "df_行政区域_2级_广州市 = pd.json_normalize(行政区域[\"districts\"][0]['districts'][1]['districts'])\n",
    "display(df_行政区域_1级,df_行政区域_2级_广州市)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 搜索POI\n",
    "- 人工智能机器学习\n",
    "- 人工智能认知服务\n",
    "- 实时定位功能"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "###  关键字搜索"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 68,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>id</th>\n",
       "      <th>name</th>\n",
       "      <th>sname</th>\n",
       "      <th>location</th>\n",
       "      <th>address</th>\n",
       "      <th>distance</th>\n",
       "      <th>subtype</th>\n",
       "      <th>typecode</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>B024F05T6W</td>\n",
       "      <td>福建师范大学仓山校区(东南门)</td>\n",
       "      <td>东南门</td>\n",
       "      <td>119.310224,26.034675</td>\n",
       "      <td>上三路32号</td>\n",
       "      <td>0</td>\n",
       "      <td>门</td>\n",
       "      <td>991400</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>B024F01IZQ</td>\n",
       "      <td>福建师范大学仓山校区(东北门)</td>\n",
       "      <td>东北门</td>\n",
       "      <td>119.309939,26.038234</td>\n",
       "      <td>上三路32号</td>\n",
       "      <td>0</td>\n",
       "      <td>门</td>\n",
       "      <td>991401</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>B024F05S4Z</td>\n",
       "      <td>福建师范大学仓山校区(东南门)</td>\n",
       "      <td>东南门</td>\n",
       "      <td>119.308168,26.039252</td>\n",
       "      <td>上三路8号</td>\n",
       "      <td>0</td>\n",
       "      <td>门</td>\n",
       "      <td>991401</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>B024F05WS1</td>\n",
       "      <td>福建师范大学停车场(长安东路)</td>\n",
       "      <td>停车场(长安东路)</td>\n",
       "      <td>119.309719,26.034184</td>\n",
       "      <td>上三路8号福建师范大学内</td>\n",
       "      <td>0</td>\n",
       "      <td>停车场</td>\n",
       "      <td>150905</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>B0FFG83285</td>\n",
       "      <td>福建师范大学停车场</td>\n",
       "      <td>停车场</td>\n",
       "      <td>119.307533,26.036217</td>\n",
       "      <td>上三路8号福建师范大学内</td>\n",
       "      <td>0</td>\n",
       "      <td>停车场</td>\n",
       "      <td>150905</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "             id               name        sname              location  \\\n",
       "0   B024F05T6W    福建师范大学仓山校区(东南门)          东南门   119.310224,26.034675   \n",
       "1   B024F01IZQ    福建师范大学仓山校区(东北门)          东北门   119.309939,26.038234   \n",
       "2   B024F05S4Z    福建师范大学仓山校区(东南门)          东南门   119.308168,26.039252   \n",
       "3   B024F05WS1    福建师范大学停车场(长安东路)    停车场(长安东路)   119.309719,26.034184   \n",
       "4   B0FFG83285          福建师范大学停车场          停车场   119.307533,26.036217   \n",
       "\n",
       "          address distance subtype  typecode  \n",
       "0         上三路32号        0        门   991400   \n",
       "1         上三路32号        0        门   991401   \n",
       "2          上三路8号        0        门   991401   \n",
       "3   上三路8号福建师范大学内        0      停车场   150905   \n",
       "4   上三路8号福建师范大学内        0      停车场   150905   "
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "def place_text(keywords,types,city=None,citylimit=None,children=None,page=None,extensions='base',sig=None)->dict:\n",
    "    \"\"\"关键字搜索\"\"\"\n",
    "    url = 'https://restapi.amap.com/v3/place/text?parameters'\n",
    "    params={\n",
    "        'key':key_yang,\n",
    "        'keywords':keywords,\n",
    "        'types':types,\n",
    "        'city':city,\n",
    "        'citylimit':citylimit,\n",
    "        'children':children,\n",
    "        'page':page,\n",
    "        'extensions':extensions,\n",
    "        'output':'json'\n",
    "    }\n",
    "    response = requests.get(url,params=params)\n",
    "    data = response.json()\n",
    "    return data\n",
    "\n",
    "福建_大学 = place_text('大学','高等院校',city=\"福建\",children=1,extensions='all')\n",
    "福建_大学\n",
    "df_福建_大学_福建师范大学 = pd.json_normalize(福建_大学[\"pois\"][0][\"children\"])\n",
    "display(df_福建_大学_福建师范大学)\n",
    "\n",
    "\n",
    "\n",
    "\n"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### 周边搜索"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 69,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>id</th>\n",
       "      <th>parent</th>\n",
       "      <th>childtype</th>\n",
       "      <th>name</th>\n",
       "      <th>type</th>\n",
       "      <th>typecode</th>\n",
       "      <th>biz_type</th>\n",
       "      <th>address</th>\n",
       "      <th>location</th>\n",
       "      <th>tel</th>\n",
       "      <th>distance</th>\n",
       "      <th>biz_ext</th>\n",
       "      <th>importance</th>\n",
       "      <th>shopid</th>\n",
       "      <th>shopinfo</th>\n",
       "      <th>poiweight</th>\n",
       "      <th>photos</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>B0FFGO01RT</td>\n",
       "      <td>B0367065BF</td>\n",
       "      <td>302</td>\n",
       "      <td>The Park西餐吧</td>\n",
       "      <td>餐饮服务;中餐厅;中餐厅</td>\n",
       "      <td>050100</td>\n",
       "      <td>diner</td>\n",
       "      <td>华山街道昆明翠湖公园莲花禅院内</td>\n",
       "      <td>102.703434,25.048699</td>\n",
       "      <td>[]</td>\n",
       "      <td>20</td>\n",
       "      <td>[]</td>\n",
       "      <td>[]</td>\n",
       "      <td>[]</td>\n",
       "      <td>0</td>\n",
       "      <td>[]</td>\n",
       "      <td>[]</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>B0FFGE3ZA4</td>\n",
       "      <td>B0367065BF</td>\n",
       "      <td>302</td>\n",
       "      <td>哈鲜族木瓜牛奶鲜果吧(翠湖太龙公馆南)</td>\n",
       "      <td>餐饮服务;冷饮店;冷饮店</td>\n",
       "      <td>050700</td>\n",
       "      <td>diner</td>\n",
       "      <td>翠湖公园A区03号商铺</td>\n",
       "      <td>102.703742,25.048332</td>\n",
       "      <td>18213000960</td>\n",
       "      <td>31</td>\n",
       "      <td>[]</td>\n",
       "      <td>[]</td>\n",
       "      <td>[]</td>\n",
       "      <td>0</td>\n",
       "      <td>[]</td>\n",
       "      <td>[]</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>B0FFGI5AEP</td>\n",
       "      <td>[]</td>\n",
       "      <td>[]</td>\n",
       "      <td>康辉旅游(翠湖门市部)</td>\n",
       "      <td>生活服务;旅行社;旅行社</td>\n",
       "      <td>070100</td>\n",
       "      <td>[]</td>\n",
       "      <td>翠湖南路67号翠湖公园内</td>\n",
       "      <td>102.703529,25.048887</td>\n",
       "      <td>[]</td>\n",
       "      <td>34</td>\n",
       "      <td>[]</td>\n",
       "      <td>[]</td>\n",
       "      <td>[]</td>\n",
       "      <td>0</td>\n",
       "      <td>[]</td>\n",
       "      <td>[]</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>B0FFK1SKXN</td>\n",
       "      <td>[]</td>\n",
       "      <td>[]</td>\n",
       "      <td>大维饮品(翠湖店)</td>\n",
       "      <td>餐饮服务;餐饮相关场所;餐饮相关</td>\n",
       "      <td>050000</td>\n",
       "      <td>diner</td>\n",
       "      <td>翠湖公园燕子桥翠湖南路4号商业区</td>\n",
       "      <td>102.703602,25.048256</td>\n",
       "      <td>18213597931</td>\n",
       "      <td>36</td>\n",
       "      <td>[]</td>\n",
       "      <td>[]</td>\n",
       "      <td>[]</td>\n",
       "      <td>0</td>\n",
       "      <td>[]</td>\n",
       "      <td>[]</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>B0FFIZKZL6</td>\n",
       "      <td>B0367065BF</td>\n",
       "      <td>302</td>\n",
       "      <td>云南过桥米线</td>\n",
       "      <td>餐饮服务;快餐厅;快餐厅</td>\n",
       "      <td>050300</td>\n",
       "      <td>diner</td>\n",
       "      <td>斗南街道翠湖南路67号翠湖公园</td>\n",
       "      <td>102.703219,25.048570</td>\n",
       "      <td>[]</td>\n",
       "      <td>38</td>\n",
       "      <td>[]</td>\n",
       "      <td>[]</td>\n",
       "      <td>[]</td>\n",
       "      <td>0</td>\n",
       "      <td>[]</td>\n",
       "      <td>[]</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>5</th>\n",
       "      <td>B0FFG24393</td>\n",
       "      <td>[]</td>\n",
       "      <td>[]</td>\n",
       "      <td>歇脚小站(钱局街店)</td>\n",
       "      <td>餐饮服务;中餐厅;中餐厅</td>\n",
       "      <td>050100</td>\n",
       "      <td>diner</td>\n",
       "      <td>翠湖南路西200米</td>\n",
       "      <td>102.703727,25.048255</td>\n",
       "      <td>[]</td>\n",
       "      <td>39</td>\n",
       "      <td>[]</td>\n",
       "      <td>[]</td>\n",
       "      <td>[]</td>\n",
       "      <td>0</td>\n",
       "      <td>[]</td>\n",
       "      <td>[]</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>6</th>\n",
       "      <td>B0FFJ29JOL</td>\n",
       "      <td>[]</td>\n",
       "      <td>[]</td>\n",
       "      <td>魏姐包心粉圆甜品店(昆明翠湖店)</td>\n",
       "      <td>餐饮服务;餐饮相关场所;餐饮相关</td>\n",
       "      <td>050000</td>\n",
       "      <td>diner</td>\n",
       "      <td>翠湖南路67号翠湖公园莲花禅院</td>\n",
       "      <td>102.703205,25.048728</td>\n",
       "      <td>18088270029</td>\n",
       "      <td>42</td>\n",
       "      <td>[]</td>\n",
       "      <td>[]</td>\n",
       "      <td>[]</td>\n",
       "      <td>0</td>\n",
       "      <td>[]</td>\n",
       "      <td>[]</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>7</th>\n",
       "      <td>B0FFJITD3X</td>\n",
       "      <td>B0367065BF</td>\n",
       "      <td>302</td>\n",
       "      <td>如心闻修书院</td>\n",
       "      <td>餐饮服务;茶艺馆;茶艺馆</td>\n",
       "      <td>050600</td>\n",
       "      <td>diner</td>\n",
       "      <td>翠湖公园莲花禅院北二楼</td>\n",
       "      <td>102.703158,25.048699</td>\n",
       "      <td>0871-68306207</td>\n",
       "      <td>46</td>\n",
       "      <td>[]</td>\n",
       "      <td>[]</td>\n",
       "      <td>[]</td>\n",
       "      <td>0</td>\n",
       "      <td>[]</td>\n",
       "      <td>[]</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>8</th>\n",
       "      <td>B0FFGI1BH9</td>\n",
       "      <td>B0367065BF</td>\n",
       "      <td>302</td>\n",
       "      <td>一九二三茶友社</td>\n",
       "      <td>餐饮服务;茶艺馆;茶艺馆</td>\n",
       "      <td>050600</td>\n",
       "      <td>diner</td>\n",
       "      <td>文林街142号附近</td>\n",
       "      <td>102.703399,25.048967</td>\n",
       "      <td>[]</td>\n",
       "      <td>46</td>\n",
       "      <td>[]</td>\n",
       "      <td>[]</td>\n",
       "      <td>[]</td>\n",
       "      <td>0</td>\n",
       "      <td>[]</td>\n",
       "      <td>[]</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>9</th>\n",
       "      <td>B0FFF9KDV2</td>\n",
       "      <td>B0367065BF</td>\n",
       "      <td>302</td>\n",
       "      <td>云南小粒咖啡</td>\n",
       "      <td>餐饮服务;咖啡厅;咖啡厅</td>\n",
       "      <td>050500</td>\n",
       "      <td>diner</td>\n",
       "      <td>文林街142号</td>\n",
       "      <td>102.703399,25.048967</td>\n",
       "      <td>13648810427</td>\n",
       "      <td>46</td>\n",
       "      <td>[]</td>\n",
       "      <td>[]</td>\n",
       "      <td>[]</td>\n",
       "      <td>0</td>\n",
       "      <td>[]</td>\n",
       "      <td>[]</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>10</th>\n",
       "      <td>B03670XFEY</td>\n",
       "      <td>B0367065BF</td>\n",
       "      <td>302</td>\n",
       "      <td>翠湖茶庄(甘润南)</td>\n",
       "      <td>餐饮服务;餐饮相关场所;餐饮相关|购物服务;购物相关场所;购物相关场所</td>\n",
       "      <td>050000|060000</td>\n",
       "      <td>diner</td>\n",
       "      <td>翠湖南路67号翠湖公园里莲华禅院内</td>\n",
       "      <td>102.703314,25.049101</td>\n",
       "      <td>15887272550</td>\n",
       "      <td>63</td>\n",
       "      <td>[]</td>\n",
       "      <td>[]</td>\n",
       "      <td>[]</td>\n",
       "      <td>1</td>\n",
       "      <td>[]</td>\n",
       "      <td>[]</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>11</th>\n",
       "      <td>B0FFLI9OY3</td>\n",
       "      <td>B0367065BF</td>\n",
       "      <td>302</td>\n",
       "      <td>相亲角</td>\n",
       "      <td>生活服务;生活服务场所;生活服务场所</td>\n",
       "      <td>070000</td>\n",
       "      <td>[]</td>\n",
       "      <td>[]</td>\n",
       "      <td>102.704280,25.049390</td>\n",
       "      <td>[]</td>\n",
       "      <td>112</td>\n",
       "      <td>[]</td>\n",
       "      <td>[]</td>\n",
       "      <td>[]</td>\n",
       "      <td>0</td>\n",
       "      <td>[]</td>\n",
       "      <td>[]</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>12</th>\n",
       "      <td>B0FFIP1SN5</td>\n",
       "      <td>B0FFIZPDU8</td>\n",
       "      <td>306</td>\n",
       "      <td>西路游船码头售票处</td>\n",
       "      <td>生活服务;售票处;售票处</td>\n",
       "      <td>070300</td>\n",
       "      <td>[]</td>\n",
       "      <td>翠云南省昆明市五华区翠湖公园内</td>\n",
       "      <td>102.702632,25.049345</td>\n",
       "      <td>[]</td>\n",
       "      <td>128</td>\n",
       "      <td>[]</td>\n",
       "      <td>[]</td>\n",
       "      <td>[]</td>\n",
       "      <td>2</td>\n",
       "      <td>[]</td>\n",
       "      <td>[]</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>13</th>\n",
       "      <td>B0FFGHKHYL</td>\n",
       "      <td>[]</td>\n",
       "      <td>[]</td>\n",
       "      <td>哈鲜族咖啡简餐概念馆(公园店)</td>\n",
       "      <td>餐饮服务;咖啡厅;咖啡厅</td>\n",
       "      <td>050500</td>\n",
       "      <td>diner</td>\n",
       "      <td>翠湖北路61号</td>\n",
       "      <td>102.703369,25.049774</td>\n",
       "      <td>[]</td>\n",
       "      <td>134</td>\n",
       "      <td>[]</td>\n",
       "      <td>[]</td>\n",
       "      <td>[]</td>\n",
       "      <td>0</td>\n",
       "      <td>[]</td>\n",
       "      <td>[]</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>14</th>\n",
       "      <td>B0FFK2CWZX</td>\n",
       "      <td>B0367065BF</td>\n",
       "      <td>302</td>\n",
       "      <td>快乐猫</td>\n",
       "      <td>餐饮服务;餐饮相关场所;餐饮相关</td>\n",
       "      <td>050000</td>\n",
       "      <td>diner</td>\n",
       "      <td>翠湖南路昆明翠湖公园内</td>\n",
       "      <td>102.703267,25.049777</td>\n",
       "      <td>[]</td>\n",
       "      <td>136</td>\n",
       "      <td>[]</td>\n",
       "      <td>[]</td>\n",
       "      <td>[]</td>\n",
       "      <td>0</td>\n",
       "      <td>[]</td>\n",
       "      <td>[]</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>15</th>\n",
       "      <td>B0FFIWCE6W</td>\n",
       "      <td>B0367065BF</td>\n",
       "      <td>302</td>\n",
       "      <td>翠湖公园-游客服务中心</td>\n",
       "      <td>生活服务;生活服务场所;生活服务场所</td>\n",
       "      <td>070000</td>\n",
       "      <td>[]</td>\n",
       "      <td>翠湖南路67号翠湖公园内</td>\n",
       "      <td>102.702321,25.049026</td>\n",
       "      <td>[]</td>\n",
       "      <td>137</td>\n",
       "      <td>[]</td>\n",
       "      <td>[]</td>\n",
       "      <td>[]</td>\n",
       "      <td>0</td>\n",
       "      <td>[]</td>\n",
       "      <td>[]</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>16</th>\n",
       "      <td>B0FFJ8R5UL</td>\n",
       "      <td>B0367065BF</td>\n",
       "      <td>302</td>\n",
       "      <td>欢乐八爪鱼</td>\n",
       "      <td>餐饮服务;餐饮相关场所;餐饮相关</td>\n",
       "      <td>050000</td>\n",
       "      <td>diner</td>\n",
       "      <td>翠湖南路67号翠湖公园内</td>\n",
       "      <td>102.704825,25.047865</td>\n",
       "      <td>[]</td>\n",
       "      <td>147</td>\n",
       "      <td>[]</td>\n",
       "      <td>[]</td>\n",
       "      <td>[]</td>\n",
       "      <td>0</td>\n",
       "      <td>[]</td>\n",
       "      <td>[]</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>17</th>\n",
       "      <td>B0FFL4FJQ0</td>\n",
       "      <td>[]</td>\n",
       "      <td>[]</td>\n",
       "      <td>昆明市五华区商学院邮政代办所</td>\n",
       "      <td>生活服务;邮局;邮局</td>\n",
       "      <td>070400</td>\n",
       "      <td>[]</td>\n",
       "      <td>商学院邮政代办所</td>\n",
       "      <td>102.705292,25.049299</td>\n",
       "      <td>[]</td>\n",
       "      <td>188</td>\n",
       "      <td>[]</td>\n",
       "      <td>[]</td>\n",
       "      <td>[]</td>\n",
       "      <td>2</td>\n",
       "      <td>[]</td>\n",
       "      <td>[]</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>18</th>\n",
       "      <td>B0FFHUTZF8</td>\n",
       "      <td>B0367065BF</td>\n",
       "      <td>302</td>\n",
       "      <td>乐餐吧</td>\n",
       "      <td>餐饮服务;餐饮相关场所;餐饮相关</td>\n",
       "      <td>050000</td>\n",
       "      <td>diner</td>\n",
       "      <td>翠湖西路67号</td>\n",
       "      <td>102.701710,25.048521</td>\n",
       "      <td>0871-65220668</td>\n",
       "      <td>190</td>\n",
       "      <td>[]</td>\n",
       "      <td>[]</td>\n",
       "      <td>[]</td>\n",
       "      <td>0</td>\n",
       "      <td>[]</td>\n",
       "      <td>[]</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>19</th>\n",
       "      <td>B0FFK4SSB9</td>\n",
       "      <td>[]</td>\n",
       "      <td>[]</td>\n",
       "      <td>古滇文火曲靖小粑粑(翠湖旗舰店)</td>\n",
       "      <td>餐饮服务;餐饮相关场所;餐饮相关</td>\n",
       "      <td>050000</td>\n",
       "      <td>diner</td>\n",
       "      <td>昆明翠湖公园-翠湖公园北门</td>\n",
       "      <td>102.703111,25.050267</td>\n",
       "      <td>18187016268</td>\n",
       "      <td>193</td>\n",
       "      <td>[]</td>\n",
       "      <td>[]</td>\n",
       "      <td>[]</td>\n",
       "      <td>0</td>\n",
       "      <td>[]</td>\n",
       "      <td>[]</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "            id      parent childtype                 name  \\\n",
       "0   B0FFGO01RT  B0367065BF       302          The Park西餐吧   \n",
       "1   B0FFGE3ZA4  B0367065BF       302  哈鲜族木瓜牛奶鲜果吧(翠湖太龙公馆南)   \n",
       "2   B0FFGI5AEP          []        []          康辉旅游(翠湖门市部)   \n",
       "3   B0FFK1SKXN          []        []            大维饮品(翠湖店)   \n",
       "4   B0FFIZKZL6  B0367065BF       302               云南过桥米线   \n",
       "5   B0FFG24393          []        []           歇脚小站(钱局街店)   \n",
       "6   B0FFJ29JOL          []        []     魏姐包心粉圆甜品店(昆明翠湖店)   \n",
       "7   B0FFJITD3X  B0367065BF       302               如心闻修书院   \n",
       "8   B0FFGI1BH9  B0367065BF       302              一九二三茶友社   \n",
       "9   B0FFF9KDV2  B0367065BF       302               云南小粒咖啡   \n",
       "10  B03670XFEY  B0367065BF       302            翠湖茶庄(甘润南)   \n",
       "11  B0FFLI9OY3  B0367065BF       302                  相亲角   \n",
       "12  B0FFIP1SN5  B0FFIZPDU8       306            西路游船码头售票处   \n",
       "13  B0FFGHKHYL          []        []      哈鲜族咖啡简餐概念馆(公园店)   \n",
       "14  B0FFK2CWZX  B0367065BF       302                  快乐猫   \n",
       "15  B0FFIWCE6W  B0367065BF       302          翠湖公园-游客服务中心   \n",
       "16  B0FFJ8R5UL  B0367065BF       302                欢乐八爪鱼   \n",
       "17  B0FFL4FJQ0          []        []       昆明市五华区商学院邮政代办所   \n",
       "18  B0FFHUTZF8  B0367065BF       302                  乐餐吧   \n",
       "19  B0FFK4SSB9          []        []     古滇文火曲靖小粑粑(翠湖旗舰店)   \n",
       "\n",
       "                                   type       typecode biz_type  \\\n",
       "0                          餐饮服务;中餐厅;中餐厅         050100    diner   \n",
       "1                          餐饮服务;冷饮店;冷饮店         050700    diner   \n",
       "2                          生活服务;旅行社;旅行社         070100       []   \n",
       "3                      餐饮服务;餐饮相关场所;餐饮相关         050000    diner   \n",
       "4                          餐饮服务;快餐厅;快餐厅         050300    diner   \n",
       "5                          餐饮服务;中餐厅;中餐厅         050100    diner   \n",
       "6                      餐饮服务;餐饮相关场所;餐饮相关         050000    diner   \n",
       "7                          餐饮服务;茶艺馆;茶艺馆         050600    diner   \n",
       "8                          餐饮服务;茶艺馆;茶艺馆         050600    diner   \n",
       "9                          餐饮服务;咖啡厅;咖啡厅         050500    diner   \n",
       "10  餐饮服务;餐饮相关场所;餐饮相关|购物服务;购物相关场所;购物相关场所  050000|060000    diner   \n",
       "11                   生活服务;生活服务场所;生活服务场所         070000       []   \n",
       "12                         生活服务;售票处;售票处         070300       []   \n",
       "13                         餐饮服务;咖啡厅;咖啡厅         050500    diner   \n",
       "14                     餐饮服务;餐饮相关场所;餐饮相关         050000    diner   \n",
       "15                   生活服务;生活服务场所;生活服务场所         070000       []   \n",
       "16                     餐饮服务;餐饮相关场所;餐饮相关         050000    diner   \n",
       "17                           生活服务;邮局;邮局         070400       []   \n",
       "18                     餐饮服务;餐饮相关场所;餐饮相关         050000    diner   \n",
       "19                     餐饮服务;餐饮相关场所;餐饮相关         050000    diner   \n",
       "\n",
       "              address              location            tel distance biz_ext  \\\n",
       "0     华山街道昆明翠湖公园莲花禅院内  102.703434,25.048699             []       20      []   \n",
       "1         翠湖公园A区03号商铺  102.703742,25.048332    18213000960       31      []   \n",
       "2        翠湖南路67号翠湖公园内  102.703529,25.048887             []       34      []   \n",
       "3    翠湖公园燕子桥翠湖南路4号商业区  102.703602,25.048256    18213597931       36      []   \n",
       "4     斗南街道翠湖南路67号翠湖公园  102.703219,25.048570             []       38      []   \n",
       "5           翠湖南路西200米  102.703727,25.048255             []       39      []   \n",
       "6     翠湖南路67号翠湖公园莲花禅院  102.703205,25.048728    18088270029       42      []   \n",
       "7         翠湖公园莲花禅院北二楼  102.703158,25.048699  0871-68306207       46      []   \n",
       "8           文林街142号附近  102.703399,25.048967             []       46      []   \n",
       "9             文林街142号  102.703399,25.048967    13648810427       46      []   \n",
       "10  翠湖南路67号翠湖公园里莲华禅院内  102.703314,25.049101    15887272550       63      []   \n",
       "11                 []  102.704280,25.049390             []      112      []   \n",
       "12    翠云南省昆明市五华区翠湖公园内  102.702632,25.049345             []      128      []   \n",
       "13            翠湖北路61号  102.703369,25.049774             []      134      []   \n",
       "14        翠湖南路昆明翠湖公园内  102.703267,25.049777             []      136      []   \n",
       "15       翠湖南路67号翠湖公园内  102.702321,25.049026             []      137      []   \n",
       "16       翠湖南路67号翠湖公园内  102.704825,25.047865             []      147      []   \n",
       "17           商学院邮政代办所  102.705292,25.049299             []      188      []   \n",
       "18            翠湖西路67号  102.701710,25.048521  0871-65220668      190      []   \n",
       "19      昆明翠湖公园-翠湖公园北门  102.703111,25.050267    18187016268      193      []   \n",
       "\n",
       "   importance shopid shopinfo poiweight photos  \n",
       "0          []     []        0        []     []  \n",
       "1          []     []        0        []     []  \n",
       "2          []     []        0        []     []  \n",
       "3          []     []        0        []     []  \n",
       "4          []     []        0        []     []  \n",
       "5          []     []        0        []     []  \n",
       "6          []     []        0        []     []  \n",
       "7          []     []        0        []     []  \n",
       "8          []     []        0        []     []  \n",
       "9          []     []        0        []     []  \n",
       "10         []     []        1        []     []  \n",
       "11         []     []        0        []     []  \n",
       "12         []     []        2        []     []  \n",
       "13         []     []        0        []     []  \n",
       "14         []     []        0        []     []  \n",
       "15         []     []        0        []     []  \n",
       "16         []     []        0        []     []  \n",
       "17         []     []        2        []     []  \n",
       "18         []     []        0        []     []  \n",
       "19         []     []        0        []     []  "
      ]
     },
     "execution_count": 69,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "def place_around(location,keywords=None,types=None,city=None,redius=None,sortrule=None,offset=None,page=None,extensions='base',sig=None)->dict:\n",
    "    \"\"\"周边搜索\"\"\"\n",
    "    url = 'https://restapi.amap.com/v3/place/around?parameters'\n",
    "    params={\n",
    "        'key':key_yang,\n",
    "        'keywords':keywords,\n",
    "        'location':location,\n",
    "        'types':types,\n",
    "        'city':city,\n",
    "        'redius':redius,\n",
    "        'sortrule':sortrule,\n",
    "        'offset':offset,\n",
    "        'page':page,\n",
    "        'extensions':extensions,\n",
    "        'output':'json'\n",
    "    }\n",
    "    response = requests.get(url,params=params)\n",
    "    data = response.json()\n",
    "    return data\n",
    "莲花禅院_周边POI = place_around(莲花禅院_location)\n",
    "莲花禅院_周边POI\n",
    "# F-3 表格化，可扩展pandas处理\n",
    "df_莲花禅院_周边POI = pd.json_normalize(莲花禅院_周边POI['pois'])\n",
    "df_莲花禅院_周边POI"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### 多边形搜索 "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 70,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "{'status': '1',\n",
       " 'count': '879',\n",
       " 'info': 'OK',\n",
       " 'infocode': '10000',\n",
       " 'suggestion': {'keywords': [], 'cities': []},\n",
       " 'pois': [{'id': 'BV10013356',\n",
       "   'parent': [],\n",
       "   'childtype': [],\n",
       "   'name': '望京(地铁站)',\n",
       "   'type': '交通设施服务;地铁站;地铁站',\n",
       "   'typecode': '150500',\n",
       "   'biz_type': [],\n",
       "   'address': '14号线东段;15号线',\n",
       "   'location': '116.469409,39.998521',\n",
       "   'tel': [],\n",
       "   'distance': [],\n",
       "   'biz_ext': {'rating': [], 'cost': []},\n",
       "   'pname': '北京市',\n",
       "   'cityname': '北京市',\n",
       "   'adname': '朝阳区',\n",
       "   'importance': [],\n",
       "   'shopid': [],\n",
       "   'shopinfo': '2',\n",
       "   'poiweight': [],\n",
       "   'photos': [{'url': 'http://store.is.autonavi.com/showpic/bd629cd90d4b5ff8bc10f90bd20481af',\n",
       "     'provider': [],\n",
       "     'title': []},\n",
       "    {'url': 'http://store.is.autonavi.com/showpic/c78a131450836b9827f8011c0c93e9c5',\n",
       "     'provider': [],\n",
       "     'title': []},\n",
       "    {'url': 'http://store.is.autonavi.com/showpic/2637dce8ed6dfd21aeefa83067de3d27',\n",
       "     'provider': [],\n",
       "     'title': []}]},\n",
       "  {'id': 'BV10416592',\n",
       "   'parent': [],\n",
       "   'childtype': [],\n",
       "   'name': '阜通(地铁站)',\n",
       "   'type': '交通设施服务;地铁站;地铁站',\n",
       "   'typecode': '150500',\n",
       "   'biz_type': [],\n",
       "   'address': '14号线东段',\n",
       "   'location': '116.471740,39.991699',\n",
       "   'tel': [],\n",
       "   'distance': [],\n",
       "   'biz_ext': {'rating': [], 'cost': []},\n",
       "   'pname': '北京市',\n",
       "   'cityname': '北京市',\n",
       "   'adname': '朝阳区',\n",
       "   'importance': [],\n",
       "   'shopid': [],\n",
       "   'shopinfo': '2',\n",
       "   'poiweight': [],\n",
       "   'photos': [{'url': 'http://store.is.autonavi.com/showpic/797d91994b74f2d0bb5ff1ef2f23e049',\n",
       "     'provider': [],\n",
       "     'title': []}]},\n",
       "  {'id': 'B000A7W44I',\n",
       "   'parent': 'B0FFIJL0Q2',\n",
       "   'childtype': '308',\n",
       "   'name': '南湖东园2区',\n",
       "   'type': '商务住宅;住宅区;住宅小区',\n",
       "   'typecode': '120302',\n",
       "   'biz_type': [],\n",
       "   'address': '来广营',\n",
       "   'location': '116.465513,39.999783',\n",
       "   'tel': [],\n",
       "   'distance': [],\n",
       "   'biz_ext': {'rating': [], 'cost': '67704.00'},\n",
       "   'pname': '北京市',\n",
       "   'cityname': '北京市',\n",
       "   'adname': '朝阳区',\n",
       "   'importance': [],\n",
       "   'shopid': [],\n",
       "   'shopinfo': '0',\n",
       "   'poiweight': [],\n",
       "   'photos': [{'url': 'http://store.is.autonavi.com/showpic/b9efc176327f188d96de8d5d41426c90',\n",
       "     'provider': [],\n",
       "     'title': '南湖东园二区'},\n",
       "    {'url': 'http://store.is.autonavi.com/showpic/53a8e558a31013cc726baeef',\n",
       "     'provider': [],\n",
       "     'title': []},\n",
       "    {'url': 'http://store.is.autonavi.com/showpic/fb1834cc030b3b430e669671214df8d8',\n",
       "     'provider': [],\n",
       "     'title': '外景图'}]},\n",
       "  {'id': 'B000A844UJ',\n",
       "   'parent': [],\n",
       "   'childtype': [],\n",
       "   'name': '望京西园',\n",
       "   'type': '商务住宅;住宅区;住宅小区',\n",
       "   'typecode': '120302',\n",
       "   'biz_type': [],\n",
       "   'address': '宏昌路附近',\n",
       "   'location': '116.474395,40.004173',\n",
       "   'tel': '13581818718',\n",
       "   'distance': [],\n",
       "   'biz_ext': {'rating': [], 'cost': []},\n",
       "   'pname': '北京市',\n",
       "   'cityname': '北京市',\n",
       "   'adname': '朝阳区',\n",
       "   'importance': [],\n",
       "   'shopid': [],\n",
       "   'shopinfo': '0',\n",
       "   'poiweight': [],\n",
       "   'photos': [{'url': 'http://store.is.autonavi.com/showpic/6b2bc6190e83c1358cd9e3e2d8d398dc',\n",
       "     'provider': [],\n",
       "     'title': []},\n",
       "    {'url': 'http://store.is.autonavi.com/showpic/6491da2a0da7636fa273bb696cc6dbd5',\n",
       "     'provider': [],\n",
       "     'title': '外景图'},\n",
       "    {'url': 'http://store.is.autonavi.com/showpic/c31b0c1d28d8a9a55843750a5fbf55b5',\n",
       "     'provider': [],\n",
       "     'title': '外景图'}]},\n",
       "  {'id': 'B000A7HA7I',\n",
       "   'parent': [],\n",
       "   'childtype': [],\n",
       "   'name': '大西洋新城',\n",
       "   'type': '商务住宅;住宅区;住宅小区',\n",
       "   'typecode': '120302',\n",
       "   'biz_type': [],\n",
       "   'address': '广顺北大街33号院',\n",
       "   'location': '116.466143,39.992265',\n",
       "   'tel': '18600842882',\n",
       "   'distance': [],\n",
       "   'biz_ext': {'rating': [], 'cost': []},\n",
       "   'pname': '北京市',\n",
       "   'cityname': '北京市',\n",
       "   'adname': '朝阳区',\n",
       "   'importance': [],\n",
       "   'shopid': [],\n",
       "   'shopinfo': '0',\n",
       "   'poiweight': [],\n",
       "   'photos': [{'url': 'http://store.is.autonavi.com/showpic/266df6d9a6bb93ecdd611655f6f23917',\n",
       "     'provider': [],\n",
       "     'title': '外景图'},\n",
       "    {'url': 'http://store.is.autonavi.com/showpic/029c1f0c0dd3e23f3c47c42622518e80',\n",
       "     'provider': [],\n",
       "     'title': []},\n",
       "    {'url': 'http://store.is.autonavi.com/showpic/5786a4f2e98e799158aad40430473737',\n",
       "     'provider': [],\n",
       "     'title': []}]},\n",
       "  {'id': 'B000A868CO',\n",
       "   'parent': [],\n",
       "   'childtype': [],\n",
       "   'name': '金隅国际',\n",
       "   'type': '商务住宅;楼宇;商住两用楼宇',\n",
       "   'typecode': '120203',\n",
       "   'biz_type': [],\n",
       "   'address': '望京西路48-4号',\n",
       "   'location': '116.458365,39.985906',\n",
       "   'tel': [],\n",
       "   'distance': [],\n",
       "   'biz_ext': {'rating': [], 'cost': '63191.00'},\n",
       "   'pname': '北京市',\n",
       "   'cityname': '北京市',\n",
       "   'adname': '朝阳区',\n",
       "   'importance': [],\n",
       "   'shopid': [],\n",
       "   'shopinfo': '0',\n",
       "   'poiweight': [],\n",
       "   'photos': [{'url': 'http://store.is.autonavi.com/showpic/53a8e56aa31013cc726bbbb6',\n",
       "     'provider': [],\n",
       "     'title': []},\n",
       "    {'url': 'http://store.is.autonavi.com/showpic/53a8e56aa31013cc726bbbb4',\n",
       "     'provider': [],\n",
       "     'title': []},\n",
       "    {'url': 'http://store.is.autonavi.com/showpic/965de9c70a0f8e1eb8f7faaad410ff0b',\n",
       "     'provider': [],\n",
       "     'title': []}]},\n",
       "  {'id': 'B000A843DP',\n",
       "   'parent': [],\n",
       "   'childtype': [],\n",
       "   'name': '圣馨大地家园',\n",
       "   'type': '商务住宅;住宅区;住宅小区',\n",
       "   'typecode': '120302',\n",
       "   'biz_type': [],\n",
       "   'address': '望京南湖南路9号',\n",
       "   'location': '116.461976,39.995678',\n",
       "   'tel': [],\n",
       "   'distance': [],\n",
       "   'biz_ext': {'rating': '3.0', 'cost': []},\n",
       "   'pname': '北京市',\n",
       "   'cityname': '北京市',\n",
       "   'adname': '朝阳区',\n",
       "   'importance': [],\n",
       "   'shopid': [],\n",
       "   'shopinfo': '0',\n",
       "   'poiweight': [],\n",
       "   'photos': [{'url': 'http://store.is.autonavi.com/showpic/b1c711b28fa28ed7cc92396de752d7b2',\n",
       "     'provider': [],\n",
       "     'title': []},\n",
       "    {'url': 'http://store.is.autonavi.com/showpic/53a8e569a31013cc726bb719',\n",
       "     'provider': [],\n",
       "     'title': []},\n",
       "    {'url': 'http://store.is.autonavi.com/showpic/792bd9d15c588f4aee3e01a65248ecc3',\n",
       "     'provider': [],\n",
       "     'title': []}]},\n",
       "  {'id': 'B000A7HS1R',\n",
       "   'parent': [],\n",
       "   'childtype': [],\n",
       "   'name': '花家地北里',\n",
       "   'type': '商务住宅;住宅区;住宅小区',\n",
       "   'typecode': '120302',\n",
       "   'biz_type': [],\n",
       "   'address': '花家地南街',\n",
       "   'location': '116.465856,39.986152',\n",
       "   'tel': [],\n",
       "   'distance': [],\n",
       "   'biz_ext': {'rating': [], 'cost': '64712.00'},\n",
       "   'pname': '北京市',\n",
       "   'cityname': '北京市',\n",
       "   'adname': '朝阳区',\n",
       "   'importance': [],\n",
       "   'shopid': [],\n",
       "   'shopinfo': '0',\n",
       "   'poiweight': [],\n",
       "   'photos': [{'url': 'http://store.is.autonavi.com/showpic/7d7cee0f44a0e3e1c34351071ea9b3ea',\n",
       "     'provider': [],\n",
       "     'title': '花家地北里'},\n",
       "    {'url': 'http://store.is.autonavi.com/showpic/53acdce8a3106c892e6e5994',\n",
       "     'provider': [],\n",
       "     'title': []},\n",
       "    {'url': 'http://store.is.autonavi.com/showpic/53acdce8a3106c892e6e5991',\n",
       "     'provider': [],\n",
       "     'title': []}]},\n",
       "  {'id': 'B000A80FUH',\n",
       "   'parent': [],\n",
       "   'childtype': [],\n",
       "   'name': '福码大厦',\n",
       "   'type': '商务住宅;楼宇;商务写字楼',\n",
       "   'typecode': '120201',\n",
       "   'biz_type': [],\n",
       "   'address': '广顺北大街33号院1号楼',\n",
       "   'location': '116.467422,39.994876',\n",
       "   'tel': '010-84726888',\n",
       "   'distance': [],\n",
       "   'biz_ext': {'rating': [], 'cost': []},\n",
       "   'pname': '北京市',\n",
       "   'cityname': '北京市',\n",
       "   'adname': '朝阳区',\n",
       "   'importance': [],\n",
       "   'shopid': [],\n",
       "   'shopinfo': '0',\n",
       "   'poiweight': [],\n",
       "   'photos': [{'url': 'http://store.is.autonavi.com/showpic/53a8e55aa31013cc726bb431',\n",
       "     'provider': [],\n",
       "     'title': []},\n",
       "    {'url': 'http://store.is.autonavi.com/showpic/296e21f0322c035398e299e4c49fa0d6',\n",
       "     'provider': [],\n",
       "     'title': []},\n",
       "    {'url': 'http://store.is.autonavi.com/showpic/ffd629b1fb596775ee82882411e6c56d',\n",
       "     'provider': [],\n",
       "     'title': []}]},\n",
       "  {'id': 'B000A7HS3L',\n",
       "   'parent': [],\n",
       "   'childtype': [],\n",
       "   'name': '花家地西里',\n",
       "   'type': '商务住宅;住宅区;住宅小区',\n",
       "   'typecode': '120302',\n",
       "   'biz_type': [],\n",
       "   'address': '南湖南路',\n",
       "   'location': '116.460082,39.988190',\n",
       "   'tel': '010-64716251',\n",
       "   'distance': [],\n",
       "   'biz_ext': {'rating': [], 'cost': []},\n",
       "   'pname': '北京市',\n",
       "   'cityname': '北京市',\n",
       "   'adname': '朝阳区',\n",
       "   'importance': [],\n",
       "   'shopid': [],\n",
       "   'shopinfo': '0',\n",
       "   'poiweight': [],\n",
       "   'photos': [{'url': 'http://store.is.autonavi.com/showpic/53a8e56aa31013cc726bba61',\n",
       "     'provider': [],\n",
       "     'title': []},\n",
       "    {'url': 'http://store.is.autonavi.com/showpic/d14c7dba2d01aaf4b4750064a55b5d7b',\n",
       "     'provider': [],\n",
       "     'title': []}]},\n",
       "  {'id': 'B000A844UM',\n",
       "   'parent': 'B0FFIJL0Q2',\n",
       "   'childtype': '308',\n",
       "   'name': '南湖东园一区',\n",
       "   'type': '商务住宅;住宅区;住宅小区',\n",
       "   'typecode': '120302',\n",
       "   'biz_type': [],\n",
       "   'address': '望京花家地广顺北大街星源国际对面',\n",
       "   'location': '116.465278,40.004165',\n",
       "   'tel': [],\n",
       "   'distance': [],\n",
       "   'biz_ext': {'rating': [], 'cost': '57363.00'},\n",
       "   'pname': '北京市',\n",
       "   'cityname': '北京市',\n",
       "   'adname': '朝阳区',\n",
       "   'importance': [],\n",
       "   'shopid': [],\n",
       "   'shopinfo': '0',\n",
       "   'poiweight': [],\n",
       "   'photos': [{'url': 'http://store.is.autonavi.com/showpic/66a2056f938b4d5e443293906d1ae994',\n",
       "     'provider': [],\n",
       "     'title': []},\n",
       "    {'url': 'http://store.is.autonavi.com/showpic/f61d141ed5ef79167b18945d4ef04ad6',\n",
       "     'provider': [],\n",
       "     'title': []},\n",
       "    {'url': 'http://store.is.autonavi.com/showpic/f85ffa6e6dc4592ec0585ca16a249e1e',\n",
       "     'provider': [],\n",
       "     'title': []}]},\n",
       "  {'id': 'B000A845C9',\n",
       "   'parent': [],\n",
       "   'childtype': [],\n",
       "   'name': '博泰国际商业广场',\n",
       "   'type': '商务住宅;楼宇;商务写字楼',\n",
       "   'typecode': '120201',\n",
       "   'biz_type': [],\n",
       "   'address': '南湖东园122号(近广顺北大街)',\n",
       "   'location': '116.466738,40.002243',\n",
       "   'tel': '010-84728155',\n",
       "   'distance': [],\n",
       "   'biz_ext': {'rating': '4.0', 'cost': []},\n",
       "   'pname': '北京市',\n",
       "   'cityname': '北京市',\n",
       "   'adname': '朝阳区',\n",
       "   'importance': [],\n",
       "   'shopid': [],\n",
       "   'shopinfo': '0',\n",
       "   'poiweight': [],\n",
       "   'photos': [{'url': 'http://store.is.autonavi.com/showpic/ebbff3b2624f143fb1414e98cc03cac0',\n",
       "     'provider': [],\n",
       "     'title': []},\n",
       "    {'url': 'http://store.is.autonavi.com/showpic/7ddafe9175698212404ccf04333c0e21',\n",
       "     'provider': [],\n",
       "     'title': []},\n",
       "    {'url': 'http://store.is.autonavi.com/showpic/8ed0557c9ddb9e30e30faf52b58a432f',\n",
       "     'provider': [],\n",
       "     'title': []}]},\n",
       "  {'id': 'B000A81FVZ',\n",
       "   'parent': [],\n",
       "   'childtype': [],\n",
       "   'name': '里外里公寓',\n",
       "   'type': '商务住宅;住宅区;住宅小区',\n",
       "   'typecode': '120302',\n",
       "   'biz_type': [],\n",
       "   'address': '望京西园429',\n",
       "   'location': '116.470066,39.993597',\n",
       "   'tel': '13651229269',\n",
       "   'distance': [],\n",
       "   'biz_ext': {'rating': [], 'cost': '54100.00'},\n",
       "   'pname': '北京市',\n",
       "   'cityname': '北京市',\n",
       "   'adname': '朝阳区',\n",
       "   'importance': [],\n",
       "   'shopid': [],\n",
       "   'shopinfo': '0',\n",
       "   'poiweight': [],\n",
       "   'photos': [{'url': 'http://store.is.autonavi.com/showpic/f4b457908a49b52c1a669b0adfcffc06',\n",
       "     'provider': [],\n",
       "     'title': []},\n",
       "    {'url': 'http://store.is.autonavi.com/showpic/a1a79fe4eeb108908ee6671e789c66a8',\n",
       "     'provider': [],\n",
       "     'title': []},\n",
       "    {'url': 'http://store.is.autonavi.com/showpic/08f478ee18057afd7b961c795c8ba3fe',\n",
       "     'provider': [],\n",
       "     'title': []}]},\n",
       "  {'id': 'B000A8W81N',\n",
       "   'parent': [],\n",
       "   'childtype': [],\n",
       "   'name': '望京大厦',\n",
       "   'type': '商务住宅;楼宇;商务写字楼',\n",
       "   'typecode': '120201',\n",
       "   'biz_type': [],\n",
       "   'address': '望京中环南路9号',\n",
       "   'location': '116.469999,39.986172',\n",
       "   'tel': '010-64711608;010-64711609',\n",
       "   'distance': [],\n",
       "   'biz_ext': {'rating': [], 'cost': []},\n",
       "   'pname': '北京市',\n",
       "   'cityname': '北京市',\n",
       "   'adname': '朝阳区',\n",
       "   'importance': [],\n",
       "   'shopid': [],\n",
       "   'shopinfo': '0',\n",
       "   'poiweight': [],\n",
       "   'photos': [{'url': 'http://store.is.autonavi.com/showpic/b6d9069c19b0dbe353821c48790729f1',\n",
       "     'provider': [],\n",
       "     'title': []},\n",
       "    {'url': 'http://store.is.autonavi.com/showpic/53b0df09a310a21470ac68b8',\n",
       "     'provider': [],\n",
       "     'title': []}]},\n",
       "  {'id': 'B000A83MQP',\n",
       "   'parent': [],\n",
       "   'childtype': [],\n",
       "   'name': '首开知语城',\n",
       "   'type': '商务住宅;住宅区;住宅小区',\n",
       "   'typecode': '120302',\n",
       "   'biz_type': [],\n",
       "   'address': '望京西路317号',\n",
       "   'location': '116.458759,39.993236',\n",
       "   'tel': '010-64758838;010-64705028',\n",
       "   'distance': [],\n",
       "   'biz_ext': {'rating': [], 'cost': '76184.00'},\n",
       "   'pname': '北京市',\n",
       "   'cityname': '北京市',\n",
       "   'adname': '朝阳区',\n",
       "   'importance': [],\n",
       "   'shopid': [],\n",
       "   'shopinfo': '0',\n",
       "   'poiweight': [],\n",
       "   'photos': [{'url': 'http://store.is.autonavi.com/showpic/3378bb22afb2b683a8867673288b55a3',\n",
       "     'provider': [],\n",
       "     'title': []},\n",
       "    {'url': 'http://store.is.autonavi.com/showpic/e21bca62eec895bb9459499b5e6deefb',\n",
       "     'provider': [],\n",
       "     'title': []},\n",
       "    {'url': 'http://store.is.autonavi.com/showpic/2e87abbd4c8568e6aec0cfde5787b76f',\n",
       "     'provider': [],\n",
       "     'title': []}]},\n",
       "  {'id': 'B000A8455P',\n",
       "   'parent': [],\n",
       "   'childtype': [],\n",
       "   'name': '金隅丽港城',\n",
       "   'type': '商务住宅;住宅区;住宅小区',\n",
       "   'typecode': '120302',\n",
       "   'biz_type': [],\n",
       "   'address': '南湖南路15号',\n",
       "   'location': '116.46189,39.991312',\n",
       "   'tel': '15321530066',\n",
       "   'distance': [],\n",
       "   'biz_ext': {'rating': [], 'cost': '77421.00'},\n",
       "   'pname': '北京市',\n",
       "   'cityname': '北京市',\n",
       "   'adname': '朝阳区',\n",
       "   'importance': [],\n",
       "   'shopid': [],\n",
       "   'shopinfo': '0',\n",
       "   'poiweight': [],\n",
       "   'photos': [{'url': 'http://store.is.autonavi.com/showpic/53a8e569a31013cc726bb8b1',\n",
       "     'provider': [],\n",
       "     'title': []},\n",
       "    {'url': 'http://store.is.autonavi.com/showpic/142349cf8731679b346b291ae18b1932',\n",
       "     'provider': [],\n",
       "     'title': []},\n",
       "    {'url': 'http://store.is.autonavi.com/showpic/426be24e550615dac058cea65bfc83cf',\n",
       "     'provider': [],\n",
       "     'title': '内景图'}]},\n",
       "  {'id': 'B000A7YIG1',\n",
       "   'parent': [],\n",
       "   'childtype': [],\n",
       "   'name': '望京明苑',\n",
       "   'type': '商务住宅;住宅区;住宅小区',\n",
       "   'typecode': '120302',\n",
       "   'biz_type': [],\n",
       "   'address': '望京西园211',\n",
       "   'location': '116.468886,40.004394',\n",
       "   'tel': '010-64701619',\n",
       "   'distance': [],\n",
       "   'biz_ext': {'rating': [], 'cost': '59769.00'},\n",
       "   'pname': '北京市',\n",
       "   'cityname': '北京市',\n",
       "   'adname': '朝阳区',\n",
       "   'importance': [],\n",
       "   'shopid': [],\n",
       "   'shopinfo': '0',\n",
       "   'poiweight': [],\n",
       "   'photos': [{'url': 'http://store.is.autonavi.com/showpic/11d2e4cdc15c0ee5adf488fc40f0fc1c',\n",
       "     'provider': [],\n",
       "     'title': '望京新居2.jpg'},\n",
       "    {'url': 'http://store.is.autonavi.com/showpic/f19f72a9771406a46b3b44c3827ce1a7',\n",
       "     'provider': [],\n",
       "     'title': '望京新居3.jpg'},\n",
       "    {'url': 'http://store.is.autonavi.com/showpic/0816cc973ab4b014516b1ddf4266e1c4',\n",
       "     'provider': [],\n",
       "     'title': '望京新居1.jpg'}]},\n",
       "  {'id': 'B000A84K8Q',\n",
       "   'parent': [],\n",
       "   'childtype': [],\n",
       "   'name': '东亚·望京中心',\n",
       "   'type': '商务住宅;楼宇;商务写字楼',\n",
       "   'typecode': '120201',\n",
       "   'biz_type': [],\n",
       "   'address': '望京园402号',\n",
       "   'location': '116.472575,39.992093',\n",
       "   'tel': [],\n",
       "   'distance': [],\n",
       "   'biz_ext': {'rating': [], 'cost': '40602.00'},\n",
       "   'pname': '北京市',\n",
       "   'cityname': '北京市',\n",
       "   'adname': '朝阳区',\n",
       "   'importance': [],\n",
       "   'shopid': [],\n",
       "   'shopinfo': '0',\n",
       "   'poiweight': [],\n",
       "   'photos': [{'url': 'http://store.is.autonavi.com/showpic/a61694f5b19ae8b43e413325dd967a96',\n",
       "     'provider': [],\n",
       "     'title': []},\n",
       "    {'url': 'http://store.is.autonavi.com/showpic/6523e9c9be8ecbff777b96861d42084f',\n",
       "     'provider': [],\n",
       "     'title': []},\n",
       "    {'url': 'http://store.is.autonavi.com/showpic/251a2abf6c230dd07547a66b52857644',\n",
       "     'provider': [],\n",
       "     'title': []}]},\n",
       "  {'id': 'B000A72F14',\n",
       "   'parent': [],\n",
       "   'childtype': [],\n",
       "   'name': '博泰大厦',\n",
       "   'type': '商务住宅;楼宇;商务写字楼',\n",
       "   'typecode': '120201',\n",
       "   'biz_type': [],\n",
       "   'address': '望京西园221号',\n",
       "   'location': '116.472773,40.002225',\n",
       "   'tel': [],\n",
       "   'distance': [],\n",
       "   'biz_ext': {'rating': [], 'cost': []},\n",
       "   'pname': '北京市',\n",
       "   'cityname': '北京市',\n",
       "   'adname': '朝阳区',\n",
       "   'importance': [],\n",
       "   'shopid': [],\n",
       "   'shopinfo': '0',\n",
       "   'poiweight': [],\n",
       "   'photos': [{'url': 'http://store.is.autonavi.com/showpic/b200102e3a7b7551d0b0fe6c8da95e32',\n",
       "     'provider': [],\n",
       "     'title': '效果图'},\n",
       "    {'url': 'http://store.is.autonavi.com/showpic/53ab7beca3106c892e6e3de0',\n",
       "     'provider': [],\n",
       "     'title': []},\n",
       "    {'url': 'http://store.is.autonavi.com/showpic/53ab7beca3106c892e6e3dde',\n",
       "     'provider': [],\n",
       "     'title': []}]},\n",
       "  {'id': 'B000A84AL3',\n",
       "   'parent': 'B0FFIJL0Q2',\n",
       "   'childtype': '308',\n",
       "   'name': '风格雅园(南湖南路)',\n",
       "   'type': '商务住宅;住宅区;住宅小区',\n",
       "   'typecode': '120302',\n",
       "   'biz_type': [],\n",
       "   'address': '望京新城南湖南路8号(近湖光中街)',\n",
       "   'location': '116.463765,39.995022',\n",
       "   'tel': [],\n",
       "   'distance': [],\n",
       "   'biz_ext': {'rating': [], 'cost': '70706.00'},\n",
       "   'pname': '北京市',\n",
       "   'cityname': '北京市',\n",
       "   'adname': '朝阳区',\n",
       "   'importance': [],\n",
       "   'shopid': [],\n",
       "   'shopinfo': '0',\n",
       "   'poiweight': [],\n",
       "   'photos': [{'url': 'http://store.is.autonavi.com/showpic/770aac570a64bec3ded55d1050f80fcc',\n",
       "     'provider': [],\n",
       "     'title': []},\n",
       "    {'url': 'http://store.is.autonavi.com/showpic/c58c3772a794ae1286bfde84c2e94b15',\n",
       "     'provider': [],\n",
       "     'title': []},\n",
       "    {'url': 'http://store.is.autonavi.com/showpic/3bc208264c8683da6ab95513fb96d216',\n",
       "     'provider': [],\n",
       "     'title': []}]}]}"
      ]
     },
     "execution_count": 70,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "def polygonal_search(polygon,keyword)->dict:\n",
    "    \"\"\"多边形搜索\"\"\"\n",
    "    url = 'https://restapi.amap.com/v3/place/polygon?parameters'\n",
    "    params={\n",
    "        'key':key_yang,\n",
    "        'polygon': polygon,\n",
    "        'keyword':keyword\n",
    "    }\n",
    "    \n",
    "    response = requests.get(url,params=params)\n",
    "    data = response.json()\n",
    "    return data\n",
    "polygonal_search(polygon='116.460988,40.006919|116.48231,40.007381;116.47516,39.99713|116.472596,39.985227|116.45669,39.984989|116.460988,40.006919',keyword='麦当劳')\n",
    "\n",
    "#  https://lbs.amap.com/api/webservice/guide/api/search#polygon"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### ID搜索"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 71,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "{'status': '1',\n",
       " 'count': '1',\n",
       " 'info': 'OK',\n",
       " 'infocode': '10000',\n",
       " 'pois': [{'id': 'B0FFFAB6J2',\n",
       "   'parent': [],\n",
       "   'childtype': [],\n",
       "   'name': '首开广场',\n",
       "   'tag': [],\n",
       "   'type': '商务住宅;楼宇;商务写字楼',\n",
       "   'typecode': '120201',\n",
       "   'biz_type': [],\n",
       "   'address': '阜荣街10号',\n",
       "   'location': '116.473004,39.993306',\n",
       "   'tel': [],\n",
       "   'postcode': [],\n",
       "   'website': [],\n",
       "   'email': [],\n",
       "   'pcode': '110000',\n",
       "   'pname': '北京市',\n",
       "   'citycode': '010',\n",
       "   'cityname': '北京市',\n",
       "   'adcode': '110105',\n",
       "   'adname': '朝阳区',\n",
       "   'importance': [],\n",
       "   'shopid': [],\n",
       "   'shopinfo': '0',\n",
       "   'poiweight': [],\n",
       "   'gridcode': '5916739702',\n",
       "   'distance': [],\n",
       "   'navi_poiid': 'J50F001020_342662',\n",
       "   'entr_location': '116.474531,39.993159',\n",
       "   'business_area': '望京',\n",
       "   'exit_location': [],\n",
       "   'match': '0',\n",
       "   'recommend': '0',\n",
       "   'timestamp': '2020-03-02 15:17:17',\n",
       "   'indoor_map': '1',\n",
       "   'indoor_data': {'cpid': 'B0FFFAB6J2',\n",
       "    'floor': [],\n",
       "    'truefloor': [],\n",
       "    'cmsid': 'TY000191_B0FFFAB6J2'},\n",
       "   'indoor_src': '高德地图',\n",
       "   'groupbuy_num': '0',\n",
       "   'discount_num': '0',\n",
       "   'biz_ext': {'rating': [], 'cost': []},\n",
       "   'event': [],\n",
       "   'deep_info': {'deepsrc': []},\n",
       "   'rich_content': [],\n",
       "   'children': [],\n",
       "   'photos': [{'title': '效果图',\n",
       "     'url': 'http://store.is.autonavi.com/showpic/a9836f620749c34742cf1ab67dc98f08'},\n",
       "    {'title': [],\n",
       "     'url': 'http://store.is.autonavi.com/showpic/53b11166a310a21470acde3a'},\n",
       "    {'title': [],\n",
       "     'url': 'http://store.is.autonavi.com/showpic/53b11166a310a21470acde31'}]}]}"
      ]
     },
     "execution_count": 71,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "def id_search(id)->dict:\n",
    "    \"\"\"ID搜索\"\"\"\n",
    "    url = 'https://restapi.amap.com/v3/place/detail?parameters'\n",
    "    params={\n",
    "         'key':key_yang,\n",
    "         'id':id\n",
    "    }\n",
    "    response = requests.get(url,params=params)\n",
    "    data = response.json()\n",
    "    return data\n",
    "id_search('B0FFFAB6J2')"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## IP定位\n",
    "- 定位功能\n",
    "- 机器学习认知服务（搜索）"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 72,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "{'status': '1',\n",
       " 'info': 'OK',\n",
       " 'infocode': '10000',\n",
       " 'province': '北京市',\n",
       " 'city': '北京市',\n",
       " 'adcode': '110000',\n",
       " 'rectangle': '116.0119343,39.66127144;116.7829835,40.2164962'}"
      ]
     },
     "execution_count": 72,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "def ip(ip:str)->dict:\n",
    "    \"\"\"IP定位\"\"\"\n",
    "    url = 'https://restapi.amap.com/v3/ip?parameters'\n",
    "    params={\n",
    "        'key': key_yang,\n",
    "        'ip':ip,\n",
    "        'output':'json'\n",
    "    }\n",
    "    response = requests.get(url,params=params)\n",
    "    data = response.json()\n",
    "    return data\n",
    "ip('114.247.50.2')"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 批量请求接口\n",
    "- 人工智能机器学习\n",
    "- 人工智能认知服务（搜索）\n",
    "- 实时定位功能"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 73,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "[{'status': 200,\n",
       "  'body': {'suggestion': {'keywords': {}, 'cities': {}},\n",
       "   'info': 'OK',\n",
       "   'status': '1',\n",
       "   'count': '888',\n",
       "   'pois': [{'typecode': '080000',\n",
       "     'adname': '永清县',\n",
       "     'biz_type': {},\n",
       "     'id': 'B0FFKKSDDS',\n",
       "     'pname': '河北省',\n",
       "     'importance': {},\n",
       "     'parent': {},\n",
       "     'location': '116.511528,39.270463',\n",
       "     'distance': '1082',\n",
       "     'tel': {},\n",
       "     'biz_ext': {'rating': {}, 'cost': {}},\n",
       "     'shopid': {},\n",
       "     'address': {},\n",
       "     'poiweight': {},\n",
       "     'cityname': '廊坊市',\n",
       "     'photos': {},\n",
       "     'type': '体育休闲服务;体育休闲服务场所;体育休闲服务场所',\n",
       "     'shopinfo': '0',\n",
       "     'name': '李庄子村兰阳草莓采摘园',\n",
       "     'childtype': {}},\n",
       "    {'typecode': '080501',\n",
       "     'adname': '永清县',\n",
       "     'biz_type': {},\n",
       "     'id': 'B0FFJM772Z',\n",
       "     'pname': '河北省',\n",
       "     'importance': {},\n",
       "     'parent': {},\n",
       "     'location': '116.513958,39.270648',\n",
       "     'distance': '1205',\n",
       "     'tel': {},\n",
       "     'biz_ext': {'rating': {}, 'cost': {}},\n",
       "     'shopid': {},\n",
       "     'address': '永清镇北辛溜附近',\n",
       "     'poiweight': {},\n",
       "     'cityname': '廊坊市',\n",
       "     'photos': {},\n",
       "     'type': '体育休闲服务;休闲场所;游乐场',\n",
       "     'shopinfo': '0',\n",
       "     'name': '儿童乐园',\n",
       "     'childtype': {}},\n",
       "    {'typecode': '080503',\n",
       "     'adname': '永清县',\n",
       "     'biz_type': {},\n",
       "     'id': 'B013C16BMA',\n",
       "     'pname': '河北省',\n",
       "     'importance': {},\n",
       "     'parent': {},\n",
       "     'location': '116.480285,39.291357',\n",
       "     'distance': '2509',\n",
       "     'tel': '13363650160',\n",
       "     'biz_ext': {'rating': {}, 'cost': {}},\n",
       "     'shopid': {},\n",
       "     'address': '永金一桥东500米',\n",
       "     'poiweight': {},\n",
       "     'cityname': '廊坊市',\n",
       "     'photos': [{'url': 'http://store.is.autonavi.com/showpic/3e517731940c4684ee94acdfb8c39b26',\n",
       "       'title': {},\n",
       "       'provider': {}},\n",
       "      {'url': 'http://store.is.autonavi.com/showpic/8eb4c3eb92489cb32cafa17205dc0112',\n",
       "       'title': {},\n",
       "       'provider': {}},\n",
       "      {'url': 'http://store.is.autonavi.com/showpic/163f3273c7c60016197a2e7912df53df',\n",
       "       'title': {},\n",
       "       'provider': {}}],\n",
       "     'type': '体育休闲服务;休闲场所;采摘园',\n",
       "     'shopinfo': '0',\n",
       "     'name': '开心草莓采摘园',\n",
       "     'childtype': {}},\n",
       "    {'typecode': '080501',\n",
       "     'adname': '永清县',\n",
       "     'biz_type': {},\n",
       "     'id': 'B0FFLPYFW5',\n",
       "     'pname': '河北省',\n",
       "     'importance': {},\n",
       "     'parent': {},\n",
       "     'location': '116.496816,39.302615',\n",
       "     'distance': '2785',\n",
       "     'tel': {},\n",
       "     'biz_ext': {'rating': {}, 'cost': {}},\n",
       "     'shopid': {},\n",
       "     'address': '益昌南路225东北100米',\n",
       "     'poiweight': {},\n",
       "     'cityname': '廊坊市',\n",
       "     'photos': {},\n",
       "     'type': '体育休闲服务;休闲场所;游乐场',\n",
       "     'shopinfo': '0',\n",
       "     'name': 'DIY儿童乐园',\n",
       "     'childtype': {}},\n",
       "    {'typecode': '080603',\n",
       "     'adname': '永清县',\n",
       "     'biz_type': {},\n",
       "     'id': 'B0FFLAIP6H',\n",
       "     'pname': '河北省',\n",
       "     'importance': {},\n",
       "     'parent': {},\n",
       "     'location': '116.496230,39.303248',\n",
       "     'distance': '2865',\n",
       "     'tel': {},\n",
       "     'biz_ext': {'seat_ordering': '0', 'rating': {}, 'cost': {}},\n",
       "     'shopid': {},\n",
       "     'address': '益昌南路',\n",
       "     'poiweight': {},\n",
       "     'cityname': '廊坊市',\n",
       "     'photos': {},\n",
       "     'type': '体育休闲服务;影剧院;剧场',\n",
       "     'shopinfo': '0',\n",
       "     'name': '向阳禾理想城梦剧场',\n",
       "     'childtype': {}},\n",
       "    {'typecode': '080308',\n",
       "     'adname': '永清县',\n",
       "     'biz_type': {},\n",
       "     'id': 'B013C0IMLS',\n",
       "     'pname': '河北省',\n",
       "     'importance': {},\n",
       "     'parent': {},\n",
       "     'location': '116.496593,39.304251',\n",
       "     'distance': '2967',\n",
       "     'tel': {},\n",
       "     'biz_ext': {'rating': '3.5', 'cost': {}},\n",
       "     'shopid': {},\n",
       "     'address': '益昌南路179号',\n",
       "     'poiweight': {},\n",
       "     'cityname': '廊坊市',\n",
       "     'photos': [{'url': 'http://store.is.autonavi.com/showpic/af47a5f4f741f6a3ad170e226f856b92',\n",
       "       'title': {},\n",
       "       'provider': {}}],\n",
       "     'type': '体育休闲服务;娱乐场所;网吧',\n",
       "     'shopinfo': '0',\n",
       "     'name': '梦想网吧(益昌南路店)',\n",
       "     'childtype': {}},\n",
       "    {'typecode': '080119',\n",
       "     'adname': '永清县',\n",
       "     'biz_type': {},\n",
       "     'id': 'B0FFMDQ6D7',\n",
       "     'pname': '河北省',\n",
       "     'importance': {},\n",
       "     'parent': {},\n",
       "     'location': '116.493187,39.304274',\n",
       "     'distance': '3045',\n",
       "     'tel': '13141201944',\n",
       "     'biz_ext': {'rating': {}, 'cost': {}},\n",
       "     'shopid': {},\n",
       "     'address': '武隆南路宏益街',\n",
       "     'poiweight': {},\n",
       "     'cityname': '廊坊市',\n",
       "     'photos': [{'url': 'http://store.is.autonavi.com/showpic/0fb1662d06ad761b51070fe0ca4c26c5',\n",
       "       'title': {},\n",
       "       'provider': {}}],\n",
       "     'type': '体育休闲服务;运动场馆;跆拳道场馆',\n",
       "     'shopinfo': '1',\n",
       "     'name': '龙圣跆拳道馆',\n",
       "     'childtype': {}},\n",
       "    {'typecode': '080000',\n",
       "     'adname': '永清县',\n",
       "     'biz_type': {},\n",
       "     'id': 'B0FFJQZNZW',\n",
       "     'pname': '河北省',\n",
       "     'importance': {},\n",
       "     'parent': {},\n",
       "     'location': '116.497741,39.309459',\n",
       "     'distance': '3519',\n",
       "     'tel': '15210485655',\n",
       "     'biz_ext': {'rating': {}, 'cost': {}},\n",
       "     'shopid': {},\n",
       "     'address': '益昌南路268号新旺小区门口',\n",
       "     'poiweight': {},\n",
       "     'cityname': '廊坊市',\n",
       "     'photos': [{'url': 'http://store.is.autonavi.com/showpic/67416ad37c69db61c270016fa6f430cc',\n",
       "       'title': {},\n",
       "       'provider': {}},\n",
       "      {'url': 'http://store.is.autonavi.com/showpic/d89fd2e7d4b62cba6187c87cc838bb89',\n",
       "       'title': {},\n",
       "       'provider': {}},\n",
       "      {'url': 'http://store.is.autonavi.com/showpic/dbaae4d6ace1004675ce4f252088ffe6',\n",
       "       'title': {},\n",
       "       'provider': {}}],\n",
       "     'type': '体育休闲服务;体育休闲服务场所;体育休闲服务场所',\n",
       "     'shopinfo': '1',\n",
       "     'name': '熙瑞国际游泳健身会所',\n",
       "     'childtype': {}},\n",
       "    {'typecode': '080113',\n",
       "     'adname': '永清县',\n",
       "     'biz_type': {},\n",
       "     'id': 'B0FFM4EHTE',\n",
       "     'pname': '河北省',\n",
       "     'importance': {},\n",
       "     'parent': {},\n",
       "     'location': '116.495838,39.309940',\n",
       "     'distance': '3600',\n",
       "     'tel': {},\n",
       "     'biz_ext': {'rating': {}, 'cost': {}},\n",
       "     'shopid': {},\n",
       "     'address': {},\n",
       "     'poiweight': {},\n",
       "     'cityname': '廊坊市',\n",
       "     'photos': {},\n",
       "     'type': '体育休闲服务;运动场馆;台球厅',\n",
       "     'shopinfo': '0',\n",
       "     'name': 'K9台球',\n",
       "     'childtype': {}},\n",
       "    {'typecode': '080308',\n",
       "     'adname': '永清县',\n",
       "     'biz_type': {},\n",
       "     'id': 'B0FFJKVFLQ',\n",
       "     'pname': '河北省',\n",
       "     'importance': {},\n",
       "     'parent': {},\n",
       "     'location': '116.497249,39.310649',\n",
       "     'distance': '3656',\n",
       "     'tel': {},\n",
       "     'biz_ext': {'rating': {}, 'cost': {}},\n",
       "     'shopid': {},\n",
       "     'address': '益昌中路与益昌南路交叉口西南50米',\n",
       "     'poiweight': {},\n",
       "     'cityname': '廊坊市',\n",
       "     'photos': {},\n",
       "     'type': '体育休闲服务;娱乐场所;网吧',\n",
       "     'shopinfo': '0',\n",
       "     'name': '网咖',\n",
       "     'childtype': {}}],\n",
       "   'infocode': '10000'},\n",
       "  'header': {'gsid': '011224234237158747401383200022419996777',\n",
       "   'Vary': 'Accept-Encoding',\n",
       "   'Content-Type': 'application/json;charset=UTF-8',\n",
       "   'Access-Control-Allow-Methods': '*',\n",
       "   'Access-Control-Allow-Origin': '*',\n",
       "   'sc': '0.141',\n",
       "   'Content-Length': 5294,\n",
       "   'Access-Control-Allow-Headers': 'DNT,X-CustomHeader,Keep-Alive,User-Agent,X-Requested-With,If-Modified-Since,Cache-Control,Content-Type,key,x-biz,x-info,platinfo,encr,enginever,gzipped,poiid',\n",
       "   'X-Powered-By': 'ring/1.0.0'}},\n",
       " {'status': 200,\n",
       "  'body': {'suggestion': {'keywords': {}, 'cities': {}},\n",
       "   'info': 'OK',\n",
       "   'status': '1',\n",
       "   'count': '879',\n",
       "   'pois': [{'typecode': '080000',\n",
       "     'adname': '曹妃甸区',\n",
       "     'biz_type': {},\n",
       "     'id': 'B0FFIT4V37',\n",
       "     'pname': '河北省',\n",
       "     'importance': {},\n",
       "     'parent': {},\n",
       "     'location': '118.509300,39.261324',\n",
       "     'distance': '1935',\n",
       "     'tel': {},\n",
       "     'biz_ext': {'rating': {}, 'cost': {}},\n",
       "     'shopid': {},\n",
       "     'address': '昌丰路与昌盛街交叉口东150米',\n",
       "     'poiweight': {},\n",
       "     'cityname': '唐山市',\n",
       "     'photos': {},\n",
       "     'type': '体育休闲服务;体育休闲服务场所;体育休闲服务场所',\n",
       "     'shopinfo': '0',\n",
       "     'name': '利民老年公寓',\n",
       "     'childtype': {}},\n",
       "    {'typecode': '080500',\n",
       "     'adname': '曹妃甸区',\n",
       "     'biz_type': {},\n",
       "     'id': 'B0FFM1WN4Q',\n",
       "     'pname': '河北省',\n",
       "     'importance': {},\n",
       "     'parent': {},\n",
       "     'location': '118.473800,39.284305',\n",
       "     'distance': '2684',\n",
       "     'tel': '13102692203;15032998415',\n",
       "     'biz_ext': {'rating': {}, 'cost': {}},\n",
       "     'shopid': {},\n",
       "     'address': '永丰路与建设大街交叉口北行200米再东行200米',\n",
       "     'poiweight': {},\n",
       "     'cityname': '唐山市',\n",
       "     'photos': [{'url': 'http://store.is.autonavi.com/showpic/02f9a9353f15bb7c882c281addaca79a',\n",
       "       'title': {},\n",
       "       'provider': {}},\n",
       "      {'url': 'http://store.is.autonavi.com/showpic/462da2324343c04c255e5b6b55403952',\n",
       "       'title': {},\n",
       "       'provider': {}},\n",
       "      {'url': 'http://store.is.autonavi.com/showpic/dfc87db906b2994dae80342d4563b1e9',\n",
       "       'title': {},\n",
       "       'provider': {}}],\n",
       "     'type': '体育休闲服务;休闲场所;休闲场所',\n",
       "     'shopinfo': '1',\n",
       "     'name': '唐山兵途枪战运动',\n",
       "     'childtype': {}},\n",
       "    {'typecode': '080301',\n",
       "     'adname': '曹妃甸区',\n",
       "     'biz_type': {},\n",
       "     'id': 'B0FFF2T193',\n",
       "     'pname': '河北省',\n",
       "     'importance': {},\n",
       "     'parent': {},\n",
       "     'location': '118.471098,39.281979',\n",
       "     'distance': '2861',\n",
       "     'tel': '0315-8037777',\n",
       "     'biz_ext': {'rating': '4.3', 'cost': {}},\n",
       "     'shopid': {},\n",
       "     'address': '建设大街与永丰路交叉口西南角',\n",
       "     'poiweight': {},\n",
       "     'cityname': '唐山市',\n",
       "     'photos': [{'url': 'http://store.is.autonavi.com/showpic/c8fd0a18befbe849ce8df7908d88ed24',\n",
       "       'title': {},\n",
       "       'provider': {}},\n",
       "      {'url': 'http://store.is.autonavi.com/showpic/468baaf5453e6c1b38d0c4c417183b40',\n",
       "       'title': {},\n",
       "       'provider': {}},\n",
       "      {'url': 'http://store.is.autonavi.com/showpic/a0a5fff0b63e60b3508c2ecb197d07e5',\n",
       "       'title': {},\n",
       "       'provider': {}}],\n",
       "     'type': '体育休闲服务;娱乐场所;夜总会',\n",
       "     'shopinfo': '0',\n",
       "     'name': '一代佳人夜总会',\n",
       "     'childtype': {}},\n",
       "    {'typecode': '080000',\n",
       "     'adname': '曹妃甸区',\n",
       "     'biz_type': {},\n",
       "     'id': 'B0FFKPS8TZ',\n",
       "     'pname': '河北省',\n",
       "     'importance': {},\n",
       "     'parent': {},\n",
       "     'location': '118.471344,39.273170',\n",
       "     'distance': '2864',\n",
       "     'tel': {},\n",
       "     'biz_ext': {'rating': {}, 'cost': {}},\n",
       "     'shopid': {},\n",
       "     'address': '垦丰大街与永丰路交叉口南50米',\n",
       "     'poiweight': {},\n",
       "     'cityname': '唐山市',\n",
       "     'photos': {},\n",
       "     'type': '体育休闲服务;体育休闲服务场所;体育休闲服务场所',\n",
       "     'shopinfo': '0',\n",
       "     'name': '新少年跆拳道馆',\n",
       "     'childtype': {}},\n",
       "    {'typecode': '080402',\n",
       "     'adname': '曹妃甸区',\n",
       "     'biz_type': {},\n",
       "     'id': 'B013B031EO',\n",
       "     'pname': '河北省',\n",
       "     'importance': {},\n",
       "     'parent': {},\n",
       "     'location': '118.469256,39.278622',\n",
       "     'distance': '2989',\n",
       "     'tel': {},\n",
       "     'biz_ext': {'rating': {}, 'cost': {}},\n",
       "     'shopid': {},\n",
       "     'address': '曙光街23号',\n",
       "     'poiweight': {},\n",
       "     'cityname': '唐山市',\n",
       "     'photos': {},\n",
       "     'type': '体育休闲服务;度假疗养场所;疗养院',\n",
       "     'shopinfo': '0',\n",
       "     'name': '光荣院(曙光街)',\n",
       "     'childtype': {}},\n",
       "    {'typecode': '080500',\n",
       "     'adname': '曹妃甸区',\n",
       "     'biz_type': {},\n",
       "     'id': 'B0FFHF91Y9',\n",
       "     'pname': '河北省',\n",
       "     'importance': {},\n",
       "     'parent': {},\n",
       "     'location': '118.467429,39.273141',\n",
       "     'distance': '3196',\n",
       "     'tel': {},\n",
       "     'biz_ext': {'rating': {}, 'cost': {}},\n",
       "     'shopid': {},\n",
       "     'address': '垦丰大街8号',\n",
       "     'poiweight': {},\n",
       "     'cityname': '唐山市',\n",
       "     'photos': {},\n",
       "     'type': '体育休闲服务;休闲场所;休闲场所',\n",
       "     'shopinfo': '0',\n",
       "     'name': '曹妃甸区老干部活动中心',\n",
       "     'childtype': {}},\n",
       "    {'typecode': '080119',\n",
       "     'adname': '曹妃甸区',\n",
       "     'biz_type': {},\n",
       "     'id': 'B0FFLDK6TP',\n",
       "     'pname': '河北省',\n",
       "     'importance': {},\n",
       "     'parent': {},\n",
       "     'location': '118.466867,39.281969',\n",
       "     'distance': '3222',\n",
       "     'tel': '17736580504',\n",
       "     'biz_ext': {'rating': {}, 'cost': {}},\n",
       "     'shopid': {},\n",
       "     'address': '建设大街红赫世家东底商58号',\n",
       "     'poiweight': {},\n",
       "     'cityname': '唐山市',\n",
       "     'photos': [{'url': 'http://store.is.autonavi.com/showpic/b59e23956de23e47401416a6b4808c0c',\n",
       "       'title': {},\n",
       "       'provider': {}}],\n",
       "     'type': '体育休闲服务;运动场馆;跆拳道场馆',\n",
       "     'shopinfo': '0',\n",
       "     'name': '泽仁跆拳道',\n",
       "     'childtype': {}},\n",
       "    {'typecode': '080000',\n",
       "     'adname': '滦南县',\n",
       "     'biz_type': {},\n",
       "     'id': 'B0FFH9MB8R',\n",
       "     'pname': '河北省',\n",
       "     'importance': {},\n",
       "     'parent': {},\n",
       "     'location': '118.527757,39.301926',\n",
       "     'distance': '3343',\n",
       "     'tel': {},\n",
       "     'biz_ext': {'rating': {}, 'cost': {}},\n",
       "     'shopid': {},\n",
       "     'address': '杨柏线北50米',\n",
       "     'poiweight': {},\n",
       "     'cityname': '唐山市',\n",
       "     'photos': {},\n",
       "     'type': '体育休闲服务;体育休闲服务场所;体育休闲服务场所',\n",
       "     'shopinfo': '0',\n",
       "     'name': '陶乐宝儿童乐园',\n",
       "     'childtype': {}},\n",
       "    {'typecode': '080304',\n",
       "     'adname': '曹妃甸区',\n",
       "     'biz_type': {},\n",
       "     'id': 'B0FFLOR4DN',\n",
       "     'pname': '河北省',\n",
       "     'importance': {},\n",
       "     'parent': {},\n",
       "     'location': '118.466494,39.287701',\n",
       "     'distance': '3395',\n",
       "     'tel': {},\n",
       "     'biz_ext': {'rating': {}, 'cost': {}},\n",
       "     'shopid': {},\n",
       "     'address': '青年城二期东底商24号',\n",
       "     'poiweight': {},\n",
       "     'cityname': '唐山市',\n",
       "     'photos': [{'url': 'http://store.is.autonavi.com/showpic/29997dd7b0c66b1dc6f15a253918ccf2',\n",
       "       'title': {},\n",
       "       'provider': {}},\n",
       "      {'url': 'http://store.is.autonavi.com/showpic/098df33a76f03e8d55672683f63da5d8',\n",
       "       'title': {},\n",
       "       'provider': {}}],\n",
       "     'type': '体育休闲服务;娱乐场所;酒吧',\n",
       "     'shopinfo': '1',\n",
       "     'name': 'ELK酒吧',\n",
       "     'childtype': {}},\n",
       "    {'typecode': '080113',\n",
       "     'adname': '滦南县',\n",
       "     'biz_type': {},\n",
       "     'id': 'B0FFMB6BAG',\n",
       "     'pname': '河北省',\n",
       "     'importance': {},\n",
       "     'parent': {},\n",
       "     'location': '118.528670,39.302678',\n",
       "     'distance': '3457',\n",
       "     'tel': {},\n",
       "     'biz_ext': {'rating': {}, 'cost': {}},\n",
       "     'shopid': {},\n",
       "     'address': {},\n",
       "     'poiweight': {},\n",
       "     'cityname': '唐山市',\n",
       "     'photos': {},\n",
       "     'type': '体育休闲服务;运动场馆;台球厅',\n",
       "     'shopinfo': '0',\n",
       "     'name': '下午时光台球俱乐部',\n",
       "     'childtype': {}}],\n",
       "   'infocode': '10000'},\n",
       "  'header': {'gsid': '011224234237158747401383200022419996777',\n",
       "   'Vary': 'Accept-Encoding',\n",
       "   'Content-Type': 'application/json;charset=UTF-8',\n",
       "   'Access-Control-Allow-Methods': '*',\n",
       "   'Access-Control-Allow-Origin': '*',\n",
       "   'sc': '0.136',\n",
       "   'Content-Length': 5564,\n",
       "   'Access-Control-Allow-Headers': 'DNT,X-CustomHeader,Keep-Alive,User-Agent,X-Requested-With,If-Modified-Since,Cache-Control,Content-Type,key,x-biz,x-info,platinfo,encr,enginever,gzipped,poiid',\n",
       "   'X-Powered-By': 'ring/1.0.0'}}]"
      ]
     },
     "execution_count": 73,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "import requests\n",
    "url=\"https://restapi.amap.com/v3/batch?key=41ced83bfcbbc1b40aa473f618ca42ce\"\n",
    "def more_port():\n",
    "    \"\"\"批量请求接口\"\"\"\n",
    "    header={\n",
    "                'Connection': 'keep-alive',\n",
    "                'Accept':'text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3',\n",
    "                'User-Agent':'Mozilla/5.0 (Linux; Android 6.0; Nexus 5 Build/MRA58N) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/78.0.3904.108 Mobile Safari/537.36',\n",
    "                \"Content-Type\": \"text/html\"\n",
    "      \n",
    "    }\n",
    "    body={\n",
    "            \"ops\": [\n",
    "            {\n",
    "                \"url\": \"/v3/place/around?offset=10&page=1&key=41ced83bfcbbc1b40aa473f618ca42ce&location=116.50394379585519,39.278209477408794&output=json&radius=100000&types=080000\"\n",
    "            },\n",
    "            {\n",
    "                \"url\": \"/v3/place/around?offset=10&page=1&key=41ced83bfcbbc1b40aa473f618ca42ce&location=118.50394379585519,39.278209477408794&output=json&radius=100000&types=080000\"\n",
    "            }\n",
    "        ]\n",
    "    }\n",
    "\n",
    "    r=requests.post(url,json=body).json()\n",
    "\n",
    "    return r\n",
    "\n",
    "\n",
    "more_port()\n",
    "\n"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 静态地图\n",
    "- 计算机视觉\n",
    "- 定位功能\n",
    "- 机器学习\n",
    "- 人工智能认知搜索"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 74,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<PIL.PngImagePlugin.PngImageFile image mode=P size=400x400 at 0x20E65CE5708>"
      ]
     },
     "execution_count": 74,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "from PIL import Image\n",
    "from io import BytesIO\n",
    "def staticmap(location,zoom,size=None,scale=1,markers=None,labels=None,paths=None,traffic=0,page=None,sig=None)->dict:\n",
    "    \"\"\"请求静态地图\"\"\"\n",
    "    url = 'https://restapi.amap.com/v3/staticmap?parameters'\n",
    "    params={\n",
    "        'key':key_yang,\n",
    "        'location':location,\n",
    "        'zoom':zoom,\n",
    "        'size':size,\n",
    "        'scale':scale,\n",
    "        'markers':markers,\n",
    "        'labels':labels,\n",
    "        'paths':paths,\n",
    "        'traffic':traffic,\n",
    "        'sig':sig,\n",
    "        'output':'json'\n",
    "    }\n",
    "    response = requests.get(url,params=params)\n",
    "    data = Image.open(BytesIO(response.content))\n",
    "    return data\n",
    "staticmap(翠湖公园地理编码,zoom=16)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 坐标转换\n",
    "- 机器学习认知服务（搜索）\n",
    "- 定位功能"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 75,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "{'status': '1',\n",
       " 'info': 'ok',\n",
       " 'infocode': '10000',\n",
       " 'locations': '102.705421820747,25.045700412327;120.707760959202,25.045863715278'}"
      ]
     },
     "execution_count": 75,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "def tranform(locations:str,coordsys:str)->dict:\n",
    "    \"\"\"坐标转换\"\"\"\n",
    "    url = 'https://restapi.amap.com/v3/assistant/coordinate/convert?parameters'\n",
    "    params={\n",
    "        'key': key_yang,\n",
    "        'locations':locations,\n",
    "        'output':'json',\n",
    "        'coordsys':coordsys,\n",
    "    }\n",
    "    response = requests.get(url,params=params)\n",
    "    data = response.json()\n",
    "    return data\n",
    "\n",
    "tranform(\"102.703979,25.048668|120.7038889,25.048668\",'gps')"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 天气查询\n",
    "- 定位功能\n",
    "- 人工智能推荐算法\n",
    "- 机器学习\n",
    "- 人工智能认知服务（播放天气情况）"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 76,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "{'status': '1',\n",
       " 'count': '1',\n",
       " 'info': 'OK',\n",
       " 'infocode': '10000',\n",
       " 'lives': [{'province': '广东',\n",
       "   'city': '广州市',\n",
       "   'adcode': '440100',\n",
       "   'weather': '阴',\n",
       "   'temperature': '26',\n",
       "   'winddirection': '东南',\n",
       "   'windpower': '≤3',\n",
       "   'humidity': '86',\n",
       "   'reporttime': '2020-04-21 20:52:48'}]}"
      ]
     },
     "execution_count": 76,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "def weather(city,extensions='base')->dict:\n",
    "    \"\"\"获取天气情况\"\"\"\n",
    "    url = 'https://restapi.amap.com/v3/weather/weatherInfo?parameters'\n",
    "    params={\n",
    "        'key': key_yang,\n",
    "        'extensions':extensions,\n",
    "        'city':city\n",
    "    }\n",
    "    response = requests.get(url,params=params)\n",
    "    data = response.json()\n",
    "    return data\n",
    "weather(city='广州')"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 输入提示\n",
    "- 机器学习\n",
    "- 人工智能算法\n",
    "- 机器学习认知服务（搜索）"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 77,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "{'status': '1',\n",
       " 'count': '10',\n",
       " 'info': 'OK',\n",
       " 'infocode': '10000',\n",
       " 'tips': [{'id': 'B0FFIV04O3',\n",
       "   'name': '一点点(周家井店)',\n",
       "   'district': '北京市朝阳区',\n",
       "   'adcode': '110105',\n",
       "   'location': '116.581547,39.913366',\n",
       "   'address': [],\n",
       "   'typecode': '050000',\n",
       "   'city': []},\n",
       "  {'id': 'B0FFJG72QR',\n",
       "   'name': '1点点(传媒大学店)',\n",
       "   'district': '北京市朝阳区',\n",
       "   'adcode': '110105',\n",
       "   'location': '116.555397,39.916456',\n",
       "   'address': '三间房乡聚福苑小区2号楼1层106-2号',\n",
       "   'typecode': '050700',\n",
       "   'city': []},\n",
       "  {'id': 'B0FFJ8Y1I4',\n",
       "   'name': '1点点(民航总院店)',\n",
       "   'district': '北京市朝阳区',\n",
       "   'adcode': '110105',\n",
       "   'location': '116.531041,39.917348',\n",
       "   'address': '朝阳路71号锐城国际1层',\n",
       "   'typecode': '050700',\n",
       "   'city': []},\n",
       "  {'id': 'B0FFIXEK35',\n",
       "   'name': '1点点(798艺术区店)',\n",
       "   'district': '北京市朝阳区',\n",
       "   'adcode': '110105',\n",
       "   'location': '116.489241,39.985715',\n",
       "   'address': '酒仙桥路大山子北里30号',\n",
       "   'typecode': '050700',\n",
       "   'city': []},\n",
       "  {'id': 'B0FFJ2JFVH',\n",
       "   'name': '1点点(望京SOHO店)',\n",
       "   'district': '北京市朝阳区',\n",
       "   'adcode': '110105',\n",
       "   'location': '116.482343,39.996308',\n",
       "   'address': '阜通东大街1号院3号楼1层1106',\n",
       "   'typecode': '050700',\n",
       "   'city': []},\n",
       "  {'id': 'B0FFJE1YXS',\n",
       "   'name': '1点点(朝阳大悦城店)',\n",
       "   'district': '北京市朝阳区',\n",
       "   'adcode': '110105',\n",
       "   'location': '116.517487,39.920914',\n",
       "   'address': '甘露园中里1号楼1-2层E',\n",
       "   'typecode': '050000',\n",
       "   'city': []},\n",
       "  {'id': 'B0FFJ6ODGU',\n",
       "   'name': '1点点(阜通店)',\n",
       "   'district': '北京市朝阳区',\n",
       "   'adcode': '110105',\n",
       "   'location': '116.470749,39.991886',\n",
       "   'address': '望京阜通西大街广顺南大街交叉口把角(地铁A1出口)',\n",
       "   'typecode': '050700',\n",
       "   'city': []},\n",
       "  {'id': 'B0FFIM7TYV',\n",
       "   'name': '1点点(东八里庄店)',\n",
       "   'district': '北京市朝阳区',\n",
       "   'adcode': '110105',\n",
       "   'location': '116.498872,39.916046',\n",
       "   'address': '八里庄东八里街丙楼',\n",
       "   'typecode': '050700',\n",
       "   'city': []},\n",
       "  {'id': 'B0FFJ0Z4MH',\n",
       "   'name': '1点点(天元港店)',\n",
       "   'district': '北京市朝阳区',\n",
       "   'adcode': '110105',\n",
       "   'location': '116.460059,39.955712',\n",
       "   'address': '东三环北路天元港中心B座负一层',\n",
       "   'typecode': '050000',\n",
       "   'city': []},\n",
       "  {'id': 'B0FFJ1WURU',\n",
       "   'name': '1点点(对外经贸大学店)',\n",
       "   'district': '北京市朝阳区',\n",
       "   'adcode': '110105',\n",
       "   'location': '116.433228,39.983763',\n",
       "   'address': '芍药居北里310号',\n",
       "   'typecode': '050700',\n",
       "   'city': []}]}"
      ]
     },
     "execution_count": 77,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "def inputprompt(keywords)->dict:\n",
    "    \"\"\"获取输入提示\"\"\"\n",
    "    url = 'https://restapi.amap.com/v3/assistant/inputtips?parameters'\n",
    "    params={\n",
    "        'key': key_yang,\n",
    "        'keywords':keywords,\n",
    "     \n",
    "    }\n",
    "    response = requests.get(url,params=params)\n",
    "    data = response.json()\n",
    "    return data\n",
    "inputprompt(keywords='一点点')"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 交通态势\n",
    "- 实时定位功能\n",
    "- 机器学习\n",
    "- 人工智能认知服务\n",
    "- 预测算法\n",
    "- 虚拟代理：与用户进行交通沟通"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 78,
   "metadata": {
    "scrolled": true
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "{'status': '1',\n",
       " 'info': 'OK',\n",
       " 'infocode': '10000',\n",
       " 'trafficinfo': {'description': '北三环路：双向畅通。',\n",
       "  'evaluation': {'expedite': '100.00%',\n",
       "   'congested': '0.00%',\n",
       "   'blocked': '0.00%',\n",
       "   'unknown': '0.00%',\n",
       "   'status': '1',\n",
       "   'description': '整体畅通'}}}"
      ]
     },
     "execution_count": 78,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "def traffic_situation(rectangle)->dict:\n",
    "    \"\"\"获取交通态势\"\"\"\n",
    "    url = 'https://restapi.amap.com/v3/traffic/status/rectangle?parameters'\n",
    "    params={\n",
    "        'key': key_yang,\n",
    "        'rectangle':rectangle\n",
    "    }\n",
    "    response = requests.get(url,params=params)\n",
    "    data = response.json()\n",
    "    return data\n",
    "traffic_situation(rectangle='116.351147,39.966309;116.357134,39.968727')"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 地理围栏\n",
    "- 定位功能\n",
    "- 机器学习认知服务（搜索）\n",
    "- 机器算法"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### 创建地理围栏"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 86,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "{'data': {'gid': '38d6905e-cf81-4b02-9fce-0d5ad495e3ed',\n",
       "  'id': '0',\n",
       "  'message': '成功',\n",
       "  'status': '0'},\n",
       " 'errcode': 0,\n",
       " 'errdetail': None,\n",
       " 'errmsg': 'OK',\n",
       " 'ext': None}"
      ]
     },
     "execution_count": 86,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "def creat(name,center,radius,repeat=\"Sun\"):\n",
    "    \"\"\"创建地理围栏\"\"\"\n",
    "    key = 'http://restapi.amap.com/v4/geofence/meta?key='+'41ced83bfcbbc1b40aa473f618ca42ce'\n",
    "    params = {\n",
    "    \"name\":name,\n",
    "    \"center\":center,\n",
    "    \"radius\":radius,\n",
    "    \"repeat\":repeat\n",
    "    }\n",
    "    response = requests.post(key,json=params)#{'data': {'gid': 'de90e05b-291c-4ad2-aa39-d5cb165cf3c6', 'id': '0', 'message': '成功', 'status': '0'}, 'errcode': 0, 'errdetail': None, 'errmsg': 'OK'}\n",
    "    data = response.json()\n",
    "    return data#字符串类型\n",
    "creat('围栏',\"125.827784,28.248466\",50)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### 查询围栏"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 80,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "{'data': {'page_no': 1,\n",
       "  'page_size': 20,\n",
       "  'rs_list': [{'adcode': '0',\n",
       "    'alert_condition': '',\n",
       "    'center': '112.827784,28.248466',\n",
       "    'create_time': '2020-04-20 11:24:52',\n",
       "    'enable': True,\n",
       "    'fixed_date': '',\n",
       "    'gid': 'cdbbce43-91c2-46b2-8336-bf2807baddab',\n",
       "    'id': '0',\n",
       "    'key': '41ced83bfcbbc1b40aa473f618ca42ce',\n",
       "    'name': '地理围栏',\n",
       "    'points': '',\n",
       "    'radius': 50.0,\n",
       "    'repeat': 'Mon',\n",
       "    'time': '00:00,23:59',\n",
       "    'valid_time': '2020-07-19'},\n",
       "   {'adcode': '0',\n",
       "    'alert_condition': '',\n",
       "    'center': '113.827784,28.248466',\n",
       "    'create_time': '2020-04-20 11:34:32',\n",
       "    'enable': True,\n",
       "    'fixed_date': '',\n",
       "    'gid': 'fcfc80c6-e07f-40f6-b406-c181d40143fe',\n",
       "    'id': '0',\n",
       "    'key': '41ced83bfcbbc1b40aa473f618ca42ce',\n",
       "    'name': '创建地理围栏',\n",
       "    'points': '',\n",
       "    'radius': 50.0,\n",
       "    'repeat': 'Sun',\n",
       "    'time': '00:00,23:59',\n",
       "    'valid_time': '2020-07-19'},\n",
       "   {'adcode': '0',\n",
       "    'alert_condition': '',\n",
       "    'center': '115.827784,28.248466',\n",
       "    'create_time': '2020-04-20 11:37:14',\n",
       "    'enable': True,\n",
       "    'fixed_date': '',\n",
       "    'gid': '0747fd08-1c7c-43d7-b25f-5eef08a0d9fb',\n",
       "    'id': '0',\n",
       "    'key': '41ced83bfcbbc1b40aa473f618ca42ce',\n",
       "    'name': '创建地理围栏',\n",
       "    'points': '',\n",
       "    'radius': 50.0,\n",
       "    'repeat': 'Sun',\n",
       "    'time': '00:00,23:59',\n",
       "    'valid_time': '2020-07-19'},\n",
       "   {'adcode': '0',\n",
       "    'alert_condition': '',\n",
       "    'center': '115.827784,28.248466',\n",
       "    'create_time': '2020-04-20 12:07:46',\n",
       "    'enable': True,\n",
       "    'fixed_date': '',\n",
       "    'gid': '3cde3238-f9ea-4f23-b591-75427f28fab9',\n",
       "    'id': '0',\n",
       "    'key': '41ced83bfcbbc1b40aa473f618ca42ce',\n",
       "    'name': '更新地理围栏',\n",
       "    'points': '',\n",
       "    'radius': 100.0,\n",
       "    'repeat': 'Mon',\n",
       "    'time': '00:00,23:59',\n",
       "    'valid_time': '2020-07-19'},\n",
       "   {'adcode': '0',\n",
       "    'alert_condition': '',\n",
       "    'center': '112.90486,28.238788',\n",
       "    'create_time': '2020-04-20 13:27:22',\n",
       "    'enable': True,\n",
       "    'fixed_date': '',\n",
       "    'gid': 'd413f8d5-daa9-48c5-bea8-94d8683678bb',\n",
       "    'id': '0',\n",
       "    'key': '41ced83bfcbbc1b40aa473f618ca42ce',\n",
       "    'name': '测试围栏',\n",
       "    'points': '',\n",
       "    'radius': 50.0,\n",
       "    'repeat': 'Mon,Tues,Wed,Thur,Fri,Sat,Sun',\n",
       "    'time': '00:00,23:59',\n",
       "    'valid_time': '2020-07-19'},\n",
       "   {'adcode': '0',\n",
       "    'alert_condition': '',\n",
       "    'center': '128.827784,28.248466',\n",
       "    'create_time': '2020-04-20 13:32:50',\n",
       "    'enable': True,\n",
       "    'fixed_date': '',\n",
       "    'gid': '65c49284-b9e4-4486-88fe-0be0426b28aa',\n",
       "    'id': '0',\n",
       "    'key': '41ced83bfcbbc1b40aa473f618ca42ce',\n",
       "    'name': '开启围栏',\n",
       "    'points': '',\n",
       "    'radius': 50.0,\n",
       "    'repeat': 'Mon,Tues,Wed,Thur,Fri,Sat,Sun',\n",
       "    'time': '00:00,23:59',\n",
       "    'valid_time': '2020-07-19'}],\n",
       "  'total_record': 6},\n",
       " 'errcode': 0,\n",
       " 'errdetail': None,\n",
       " 'errmsg': 'OK',\n",
       " 'ext': None}"
      ]
     },
     "execution_count": 80,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "def get_wl(id):\n",
    "    \"\"\"查询围栏\"\"\"\n",
    "    key = 'http://restapi.amap.com/v4/geofence/meta?key='+'41ced83bfcbbc1b40aa473f618ca42ce'\n",
    "    params = {\n",
    "    \"id\":id,\n",
    "    }\n",
    "    response = requests.get(key,json=params)#{'data': {'gid': 'de90e05b-291c-4ad2-aa39-d5cb165cf3c6', 'id': '0', 'message': '成功', 'status': '0'}, 'errcode': 0, 'errdetail': None, 'errmsg': 'OK'}\n",
    "    data = response.json()\n",
    "    return data#字符串类型\n",
    "get_wl('0')"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### 更新围栏"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 87,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "{'data': {'gid': '3cc3c022-a6a5-49b2-adf7-f3a8dd12c476',\n",
       "  'id': '0',\n",
       "  'message': '成功',\n",
       "  'status': '0'},\n",
       " 'errcode': 0,\n",
       " 'errdetail': None,\n",
       " 'errmsg': 'OK',\n",
       " 'ext': None}"
      ]
     },
     "execution_count": 87,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "def updata(name,center,radius=100,repeat=\"Mon\"):\n",
    "    \"\"\"更新围栏\"\"\"\n",
    "    key = 'https://restapi.amap.com/v4/geofence/meta?key=41ced83bfcbbc1b40aa473f618ca42ce&gid=gid'\n",
    "    params = {\n",
    "    \"name\":name,\n",
    "    \"center\":center,\n",
    "    \"radius\":radius,\n",
    "    \"repeat\":repeat,\n",
    "    }\n",
    "    response = requests.post(key,json=params)#{'data': {'gid': 'de90e05b-291c-4ad2-aa39-d5cb165cf3c6', 'id': '0', 'message': '成功', 'status': '0'}, 'errcode': 0, 'errdetail': None, 'errmsg': 'OK'}\n",
    "    data = response.json()\n",
    "    return data#字符串类型\n",
    "updata(name='更新围栏',center='115.828784,28.248466')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 88,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "{'data': {'page_no': 1,\n",
       "  'page_size': 20,\n",
       "  'rs_list': [{'adcode': '0',\n",
       "    'alert_condition': '',\n",
       "    'center': '112.827784,28.248466',\n",
       "    'create_time': '2020-04-20 11:24:52',\n",
       "    'enable': True,\n",
       "    'fixed_date': '',\n",
       "    'gid': 'cdbbce43-91c2-46b2-8336-bf2807baddab',\n",
       "    'id': '0',\n",
       "    'key': '41ced83bfcbbc1b40aa473f618ca42ce',\n",
       "    'name': '地理围栏',\n",
       "    'points': '',\n",
       "    'radius': 50.0,\n",
       "    'repeat': 'Mon',\n",
       "    'time': '00:00,23:59',\n",
       "    'valid_time': '2020-07-19'},\n",
       "   {'adcode': '0',\n",
       "    'alert_condition': '',\n",
       "    'center': '113.827784,28.248466',\n",
       "    'create_time': '2020-04-20 11:34:32',\n",
       "    'enable': True,\n",
       "    'fixed_date': '',\n",
       "    'gid': 'fcfc80c6-e07f-40f6-b406-c181d40143fe',\n",
       "    'id': '0',\n",
       "    'key': '41ced83bfcbbc1b40aa473f618ca42ce',\n",
       "    'name': '创建地理围栏',\n",
       "    'points': '',\n",
       "    'radius': 50.0,\n",
       "    'repeat': 'Sun',\n",
       "    'time': '00:00,23:59',\n",
       "    'valid_time': '2020-07-19'},\n",
       "   {'adcode': '0',\n",
       "    'alert_condition': '',\n",
       "    'center': '115.827784,28.248466',\n",
       "    'create_time': '2020-04-20 11:37:14',\n",
       "    'enable': True,\n",
       "    'fixed_date': '',\n",
       "    'gid': '0747fd08-1c7c-43d7-b25f-5eef08a0d9fb',\n",
       "    'id': '0',\n",
       "    'key': '41ced83bfcbbc1b40aa473f618ca42ce',\n",
       "    'name': '创建地理围栏',\n",
       "    'points': '',\n",
       "    'radius': 50.0,\n",
       "    'repeat': 'Sun',\n",
       "    'time': '00:00,23:59',\n",
       "    'valid_time': '2020-07-19'},\n",
       "   {'adcode': '0',\n",
       "    'alert_condition': '',\n",
       "    'center': '115.827784,28.248466',\n",
       "    'create_time': '2020-04-20 12:07:46',\n",
       "    'enable': True,\n",
       "    'fixed_date': '',\n",
       "    'gid': '3cde3238-f9ea-4f23-b591-75427f28fab9',\n",
       "    'id': '0',\n",
       "    'key': '41ced83bfcbbc1b40aa473f618ca42ce',\n",
       "    'name': '更新地理围栏',\n",
       "    'points': '',\n",
       "    'radius': 100.0,\n",
       "    'repeat': 'Mon',\n",
       "    'time': '00:00,23:59',\n",
       "    'valid_time': '2020-07-19'},\n",
       "   {'adcode': '0',\n",
       "    'alert_condition': '',\n",
       "    'center': '112.90486,28.238788',\n",
       "    'create_time': '2020-04-20 13:27:22',\n",
       "    'enable': True,\n",
       "    'fixed_date': '',\n",
       "    'gid': 'd413f8d5-daa9-48c5-bea8-94d8683678bb',\n",
       "    'id': '0',\n",
       "    'key': '41ced83bfcbbc1b40aa473f618ca42ce',\n",
       "    'name': '测试围栏',\n",
       "    'points': '',\n",
       "    'radius': 50.0,\n",
       "    'repeat': 'Mon,Tues,Wed,Thur,Fri,Sat,Sun',\n",
       "    'time': '00:00,23:59',\n",
       "    'valid_time': '2020-07-19'},\n",
       "   {'adcode': '0',\n",
       "    'alert_condition': '',\n",
       "    'center': '128.827784,28.248466',\n",
       "    'create_time': '2020-04-20 13:32:50',\n",
       "    'enable': True,\n",
       "    'fixed_date': '',\n",
       "    'gid': '65c49284-b9e4-4486-88fe-0be0426b28aa',\n",
       "    'id': '0',\n",
       "    'key': '41ced83bfcbbc1b40aa473f618ca42ce',\n",
       "    'name': '开启围栏',\n",
       "    'points': '',\n",
       "    'radius': 50.0,\n",
       "    'repeat': 'Mon,Tues,Wed,Thur,Fri,Sat,Sun',\n",
       "    'time': '00:00,23:59',\n",
       "    'valid_time': '2020-07-19'},\n",
       "   {'adcode': '0',\n",
       "    'alert_condition': '',\n",
       "    'center': '125.827784,28.248466',\n",
       "    'create_time': '2020-04-21 21:01:07',\n",
       "    'enable': True,\n",
       "    'fixed_date': '',\n",
       "    'gid': '38d6905e-cf81-4b02-9fce-0d5ad495e3ed',\n",
       "    'id': '0',\n",
       "    'key': '41ced83bfcbbc1b40aa473f618ca42ce',\n",
       "    'name': '围栏',\n",
       "    'points': '',\n",
       "    'radius': 50.0,\n",
       "    'repeat': 'Sun',\n",
       "    'time': '00:00,23:59',\n",
       "    'valid_time': '2020-07-20'},\n",
       "   {'adcode': '0',\n",
       "    'alert_condition': '',\n",
       "    'center': '115.828784,28.248466',\n",
       "    'create_time': '2020-04-21 21:01:31',\n",
       "    'enable': True,\n",
       "    'fixed_date': '',\n",
       "    'gid': '3cc3c022-a6a5-49b2-adf7-f3a8dd12c476',\n",
       "    'id': '0',\n",
       "    'key': '41ced83bfcbbc1b40aa473f618ca42ce',\n",
       "    'name': '更新围栏',\n",
       "    'points': '',\n",
       "    'radius': 100.0,\n",
       "    'repeat': 'Mon',\n",
       "    'time': '00:00,23:59',\n",
       "    'valid_time': '2020-07-20'}],\n",
       "  'total_record': 8},\n",
       " 'errcode': 0,\n",
       " 'errdetail': None,\n",
       " 'errmsg': 'OK',\n",
       " 'ext': None}"
      ]
     },
     "execution_count": 88,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# 查询一下是否更新成功\n",
    "get_wl('0')"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### 开启地理围栏"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 89,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "{'data': {'gid': '1435d5c1-ee79-41dd-9ac6-05a312fac107',\n",
       "  'id': '0',\n",
       "  'message': '成功',\n",
       "  'status': '0'},\n",
       " 'errcode': 0,\n",
       " 'errdetail': None,\n",
       " 'errmsg': 'OK',\n",
       " 'ext': None}"
      ]
     },
     "execution_count": 89,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "def open(name,center,radius,repeat):\n",
    "    \"\"\"开启地理围栏\"\"\"\n",
    "    parameters = {\n",
    "    \"name\": name,\n",
    "    \"center\":center,\n",
    "    \"radius\": radius,\n",
    "    \"repeat\": repeat,\n",
    "    \"enable\":\"true\",#创建围栏后同时启动围栏\n",
    "    }\n",
    "    url = 'http://restapi.amap.com/v4/geofence/meta?key='+ '41ced83bfcbbc1b40aa473f618ca42ce'\n",
    "    response = requests.post(url, json=parameters)#{'data': {'gid': 'de90e05b-291c-4ad2-aa39-d5cb165cf3c6', 'id': '0', 'message': '成功', 'status': '0'}, 'errcode': 0, 'errdetail': None, 'errmsg': 'OK'}\n",
    "    data = response.json()\n",
    "    return data\n",
    "open(\"围栏_\",\"128.887784,28.248466\",50,\"Mon,Tues,Wed,Thur,Fri,Sat,Sun\")"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 轨迹纠偏\n",
    "- 实时定位功能\n",
    "- 语音识别\n",
    "- 机器学习\n",
    "- 机器学习认知服务（搜索）\n",
    "- 计算机视觉"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 84,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "{'data': {'distance': 3238.0,\n",
       "  'points': [{'x': 116.44975931632827, 'y': 40.0122682195117},\n",
       "   {'x': 116.44976735115051, 'y': 40.01220703125},\n",
       "   {'x': 116.44986927509308, 'y': 40.01141309738159},\n",
       "   {'x': 116.44993901252747, 'y': 40.01104295253754},\n",
       "   {'x': 116.44992291927338, 'y': 40.01041531562805},\n",
       "   {'x': 116.44986391067505, 'y': 40.00977694988251},\n",
       "   {'x': 116.44986391067505, 'y': 40.0092351436615},\n",
       "   {'x': 116.44984245300293, 'y': 40.009052753448486},\n",
       "   {'x': 116.4295220375061, 'y': 40.02216339111328},\n",
       "   {'x': 116.42227281537524, 'y': 40.02229189199458}]},\n",
       " 'errcode': 0,\n",
       " 'errdetail': None,\n",
       " 'errmsg': 'OK',\n",
       " 'ext': None}"
      ]
     },
     "execution_count": 84,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "url=\"https://restapi.amap.com/v4/grasproad/driving?key=41ced83bfcbbc1b40aa473f618ca42ce\"\n",
    "def Trajectory_correction():\n",
    "    \"\"\"轨迹纠偏\"\"\"\n",
    "    body=[{\n",
    "    \"x\": 116.4494449,\n",
    "    \"y\": 40.012244,\n",
    "    \"sp\": 3,\n",
    "    \"ag\": 113,\n",
    "    \"tm\": 1478831753\n",
    "    }, {\n",
    "    \"x\": 116.449739,\n",
    "    \"y\": 40.011776,\n",
    "    \"sp\": 3,\n",
    "    \"ag\": 108,\n",
    "    \"tm\": 23\n",
    "    }, {\n",
    "    \"x\": 116.4488859,\n",
    "    \"y\": 40.014716,\n",
    "    \"sp\": 3,\n",
    "    \"ag\": 111,\n",
    "    \"tm\": 30\n",
    "    }, {\n",
    "    \"x\": 116.4544474,\n",
    "    \"y\": 40.0133358,\n",
    "    \"sp\": 3,\n",
    "    \"ag\": 111,\n",
    "    \"tm\": 31\n",
    "    }, {\n",
    "    \"x\": 116.422273,\n",
    "    \"y\": 40.022298,\n",
    "    \"sp\": 3,\n",
    "    \"ag\": 111,\n",
    "    \"tm\": 20\n",
    "    }]\n",
    "\n",
    "    r=requests.post(url=url,json=body).json()\n",
    "    return r\n",
    "Trajectory_correction()\n",
    "\n",
    "\n"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# 二、简单应用尝试\n",
    "##  应用：租房筛选APP\n",
    "## 产生想法的背景\n",
    "   疫情期间，广州租房备受打击，租客锐减。但是随着时间的推移，返工和复学的人员有所增加，需求也更加膨胀。然而，疫情期间，租房中介也变得更少，租客很难了解到哪里有多余的租房，租房的条件如何等具体信息。而疫情期间在外奔波感染病毒风险也很大，租客迫切希望有这么一个应用，既能在家筛选房型，精确定位所需租房，又实时提供不同类型租房丰富的信息，增加租客的可选择性。\n",
    "## 应用必须具备API功能\n",
    "- 搜索POI API  (提供用户自定义标签，自定义搜索关键词等快速筛选不同的房型）\n",
    "- 静态地图 API （展示租房周围的生活环境基础设施，交通情况，以及周围感染病例的可视化标签等）\n",
    "- 路径规划 API （当用户选定租房时，为用户规划最佳路线，减少寻找租房所花费时间）\n",
    "- 输入提示 API  (提供具体化的房型标签，例如单间房，双间房，靠近地铁，远离疫区等）"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": []
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.7.4"
  },
  "toc": {
   "base_numbering": 1,
   "nav_menu": {},
   "number_sections": true,
   "sideBar": true,
   "skip_h1_title": false,
   "title_cell": "Table of Contents",
   "title_sidebar": "Contents",
   "toc_cell": false,
   "toc_position": {
    "height": "575px",
    "left": "50px",
    "top": "111.883px",
    "width": "341.5px"
   },
   "toc_section_display": true,
   "toc_window_display": false
  }
 },
 "nbformat": 4,
 "nbformat_minor": 2
}
